문제 링크
- http://icpc.me/1761
사용 알고리즘
- LCA
시간복잡도
- 전처리 O(NlogN)
- 쿼리 O(logN)
풀이
트리에서 루트부터 어떤 정점 x까지의 거리를 dist[x]라고 합시다.
그러면 정점 u부터 v까지 경로의 길이는 dist[u] + dist[v] - 2dist[lca(u, v)] 입니다.
lca를 잘 구현해주면 됩니다.
전체 코드
1 |
|
트리에서 루트부터 어떤 정점 x까지의 거리를 dist[x]라고 합시다.
그러면 정점 u부터 v까지 경로의 길이는 dist[u] + dist[v] - 2dist[lca(u, v)] 입니다.
lca를 잘 구현해주면 됩니다.
1 |
|