문제 링크
- http://icpc.me/13310
문제 출처
- 2016 전국 본선 고등부4
사용 알고리즘
- Convex Hull
- Rotating Calipers
시간복잡도
- O(log T * N log N)
풀이
N개의 별 중, 가장 거리가 먼 두 쌍을 찾는 방법을 먼저 알아봅시다.
가장 간단한 방법으로는 N2으로 전체 별을 완전 탐색 하는 방법이 있습니다.
아니면 N log N만에 Convex Hull을 구하고, N만에 Rotating Calipers를 돌리는 방법이 있습니다. 이 문제에서는 후자의 방법을 요구합니다.
N개의 별 중 가장 먼 두 쌍을 찾는 것은 Rotating Calipers로 구현을 한다고 합시다. 이제 T+1개의 사진 중, Rotating Calipers로 구한 거리가 가장 짧은 순간을 구해야 합니다.
만약 k라는 지점에서 가장 짧다면, 아래 그래프와 비슷한 형태로 그래프가 그려지게 됩니다.
삼분탐색을 통해 log T번의 시도로 구할 수 있습니다.
그러므로 전체 시간 복잡도는 O(logT * NlogN)입니다.
전체 코드
1 |
|