728x90

해결과정 - 확률
a와 b로 이루어진 선분이 몇번 출현하는지 안다면 쉽게 풀수 있는 문제였다.
a,b를 제외한 나머지를 일렬로 배치하는 방법은 (n-2)! 이며 배치한 공간중 a,b가 들어갈 수 있는 공간은 n - 1개로 a, b선분은 총 (n - 1)!번 등장하게 된다.
따라서 각 점들끼리 의 거리를 한번씩 더해준뒤 출현횟수인 (n - 1)!을 곱한뒤 a,b b,a 양방향을 고려하여 2를 곱한뒤 총 개수 n!으로 나눈다면 답이되는 재미있는 문제였다
#include <bits/stdc++.h>
#define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
typedef long long ll;
using namespace std;
class Point {
public:
int x, y;
Point(int x, int y) : x(x), y(y) {};
Point() : x(0), y(0) {};
};
double GetDistance(Point& a, Point& b) {
return sqrt(pow(a.x - b.x, 2) + pow(a.y - b.y, 2));
}
int main()
{
FAST;
int n; cin >> n;
// 출현 위치 저장
vector<Point> pos(n);
for (int i = 0; i < n; i++) {
cin >> pos[i].x >> pos[i].y;
}
double sum = 0;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
sum += GetDistance(pos[i], pos[j]);
}
}
cout << fixed;
cout.precision(9);
cout << (sum * 2) / n << "\n";
return 0;
}
후기
오랜만의 확률문제 재미있다.
컴퓨터 새거 샀는데 날아갈 듯한 기분이다 ㅎㅎㅎ.
728x90
'알고리즘문제 풀어보기 > 백준' 카테고리의 다른 글
백준 - 2866 문자열 잘라내기 (3) | 2024.11.15 |
---|---|
백준 - 32645 동까뚱뽭 게임 (0) | 2024.11.12 |
백준 32530 - Chance! 2 (0) | 2024.11.07 |
백준 - 9202 Boqqle <트라이 연습하기> (0) | 2024.11.04 |
백준 - 3025 돌던지기 (게임에서 falling sand 같은 느낌) (0) | 2024.10.31 |