문제 링크
- http://icpc.me/2887
문제 출처
- 2009/2010 COCI Contest #7 4번
사용 알고리즘
- MST
풀이
모든 행성 사이에 간선을 만들어주면 O(N2)으로 시간 초과가 나게 됩니다.
결론부터 말하자면, 3*(N-1)개의 간선만 봐도 MST를 항상 만들 수 있습니다.
x축만 있다고 봅시다.
좌표를 기준으로 정렬을 한 뒤, i번째 행성과 i+1번째 행성을 이어주면 N-1개의 간선으로 MST를 만들 수 있습니다.
이 방법 외에는 MST를 만드는 방법이 없습니다.
3차원으로 올려봅시다.
각 축에 대해 위에서 언급한 작업을 수행해주면 3*(N-1)개의 간선만 보게 됩니다.
x축만 있을 때와 동일한 이유로 MST를 항상 찾을 수 있습니다.
전체 코드
1 |
|