티스토리 뷰
1. 문제에서 구하고 싶은 구조 (트리에서의 경로 / 트리에서의 연속 컴포넌트)를 루트를 정해놓고, 그 루트를 지나는 것들만 고려했을 때 쉽게 풀 수 있다면 Centroid Decomposition을 이용하여 전체 문제를 해결할 수 있다.
만약 트리에서의 루트가 고정되어 있고, 루트를 지나는 구조들에 대해서는 쉽게 풀 수 있다면, 이제 그 루트를 지나지 않는 경우에 대해서는 Centroid Decomposition의 분할정복 과정에서 다음으로 탐색할 것이다.
이와 같이 생각하면 장점이, 루트를 지나는 경로 / 컴포넌트 등은 각 서브트리에서 문제를 독립적으로 해결할 수 있으니, 가능한 모든 정점쌍 / 집합쌍을 고려하는 대신, 한 서브트리의 정점들을 자료구조 안에 삽입한 후 다른 정점들을 빠르게 찾을 수도 있고, 독립적인 상황으로 만들어 빠르게 전처리한 후 해결할 수 있다.
이 때 주의해야할 점은 루트를 무조건 지나도록 해야하기 때문에, 양쪽 방향으로 스위핑을 하는 등의 작업이 필요할 수도 있다.
이러한 성질 때문에 특히, 트리에서의 거리함수와 관련된 내용이 나왔을 때 쉽게 적용할 수 있다.
'아이디어 & 테크닉 모음' 카테고리의 다른 글
DNC Opt / Monotone Queue Opt (0) | 2021.02.07 |
---|---|
Bitmasks (0) | 2020.12.01 |
Optimizations (상수 커팅) (0) | 2020.11.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Segment Tree
- HLD
- Divide & Conquer
- Merge Sort
- APIO
- Fenwick Tree
- Line sweeping
- convex hull
- ⭐
- Floyd-Warshall
- Interactive
- stack
- DFS
- BOJ
- ioi
- CHT
- Persistent Segment Tree
- Shortest path
- DP
- graph
- Sqrt Decomposition
- Codeforces
- offline
- tree
- Union Find
- Sparse Table
- Centroid Decomposition
- Parametric Search
- Lazy Propagation
- Greedy
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함