문제 링크
- http://icpc.me/11686
문제 출처
- 2015 SWERC J번
시간복잡도
- $O(Q \log N)$
풀이
Convex Hull과 임의의 점 p가 주어졌을 때 p가 Convex Hull 내부에 있는지 판단하는 문제입니다.
일반적인 Point in Polygon은 $O(N)$이 걸리므로 더 빠르게 해야합니다.
볼록N각형은 이런 식으로 N-2개의 삼각형으로 쪼개줄 수 있습니다.
N-2개의 삼각형 중 한 삼각형의 내부에 있으면 볼록다각형의 내부에 있다고 판단할 수 있습니다.
이분탐색을 이용해서 $O(\log N)$만에 어떤 삼각형이 담당하는 각도에 있는지 구할 수 있고, 삼각형 안에 점이 있는지 판단하는 것은 $O(1)$에 가능합니다.
전체 코드
1 |
|