문제 링크
- http://icpc.me/1077
시간복잡도
- $O(NM)$
풀이
두 다각형이 겹치지 않은 경우, 한 다각형이 다른 다각형을 완전히 포함하는 경우를 미리 예외처리합시다. 어떤 점이 볼록 다각형 $H$ 안에 있는지 판별하는 것은 $O(\log \vert H \vert)$ 시간에 할 수 있으므로 이 과정을 선형 로그 시간에 처리할 수 있지만, 굳이 그렇게 하지 않아도 됩니다.
만약 두 볼록다각형이 겹친다면, 교점은 정확히 두 개 존재합니다. 두 다각형의 변을 모두 보면서 겹치는 변이 있다면 교점을 구하고, 꼭짓점을 모두 보면서 교집합의 꼭짓점도 구합시다. 꼭짓점들을 모두 구했다면 다각형의 넓이를 계산하는 것은 신발끈 공식을 이용해서 쉽게 구할 수 있습니다.
전체 코드
1 |
|