문제 링크
- https://icpc.me/23299
사용 알고리즘
- 세그먼트 트리
- DP
시간복잡도
- $O(NK \log N)$
풀이
각 물건이 $[S_i, E_i]$ 시점에 존재할 때, 각 시점마다 냅색을 하는 문제입니다.
Offline Dynamic Connectivity와 비슷한 방식으로 문제를 해결합니다. 각 물건을 세그먼트 트리의 $O(\log N)$개의 정점에 넣습니다. 각 정점에서 DP를 한 다음, 그 DP 테이블을 자식 정점으로 넘겨주는 방식으로 정답을 구할 수 있습니다.
세그먼트 트리에는 $O(N \log N)$개의 물건이 존재하고, 각 물건마다 $O(K)$ 만큼의 시간이 필요하므로 전체 시간 복잡도는 $O(NK \log N)$입니다.
전체 코드
1 |
|