문제 링크
- http://icpc.me/11933
문제 출처
- 2014 JOIOC 1번
사용 알고리즘
- 트리 압축
시간복잡도
- $O((sumS + sumT + N) \log N)$
풀이
잘 생각해보면, 쿼리로 주어진 정점들과 그들의 LCA만 봐도 답을 구할 수 있다는 것을 알 수 있습니다. 트리 압축을 해줍시다.
압축된 트리에서 DFS를 돌면사, 각 정점마다 {현재 정점에서 가장 가까운 회사 U의 공장까지의 거리, 현재 정점에서 가장 가까운 회사 V의 공장까지의 거리}를 구해주면 문제를 풀 수 있습니다.
전체 코드
1 |
|