문제 링크
- http://icpc.me/18263
문제 출처
- 2019 USACO December Gold 2번
사용 알고리즘
- HLD
- Merge Sort Tree
시간복잡도
- $O(N \log^3 N)$
풀이
각 정점의 색깔이 주어졌을 때, 두 정점 u, v를 잇는 경로 위에 색깔 C가 존재하는지 확인하는 문제입니다.
트리가 아닌 배열에서는 Merge Sort Tree를 이용해 쉽게 구할 수 있습니다.
트리에서는 HLD를 이용해 배열과 비슷하게 처리할 수 있습니다.
Merge Sort Tree 대신 세그먼트 트리의 각 정점에 set을 저장하면 조금 더 쉽게 풀 수 있습니다.
전체 코드
1 |
|