문제 링크
- http://icpc.me/12876
사용 알고리즘
- CHT
- convex Hull
- offline dynamic connectivity
시간복잡도
- $O(N log^2 N)$
풀이
offline dynamic connectivity problem 에서는 간선의 수명을 구한 다음, 세그먼트 트리로 관리해주는 방식으로 문제를 해결했습니다.
비슷한 방법으로, 이 문제에서는 직선의 수명을 구해서 세그먼트 트리로 관리하며 오프라인으로 처리할 것입니다.
직선의 수명 구간 안에 완전히 포함되는 노드에만 직선을 넣어주면 됩니다.
각 정점에서 CHT를 관리해주는 조금 이상한 세그먼트 트리를 만들 것입니다.
직선들을 모두 세그먼트 트리에 넣어준 뒤, graham scan과 유사한 방법으로 직선들을 정렬해주면 됩니다.
전처리를 모두 했다면, 각 쿼리에 대한 답은 삼분탐색 등을 이용해 구할 수 있습니다.
전체 코드
1 |
|