https://jungol.co.kr/problem/5834
장애물이 설치되어 있는 노드를 기점으로 트리를 서브트리로 분활한다면 항상 고양이가 있는 노드가 포함되어 있는 서브트리에서 최대의 높이를 가진 정점은 고양이가 현재 있는 노드다. 최소 높이부터 유파로 서브트리의 크기를 늘리는 방법으로 접근하자. 두 서브트리를 합칠 때, 각 서브트리에 포함되는 최대 높이의 정점들 사이의 거리를 스파스 테이블로 효율적으로 구한다면 AC를 받을 수 있다.
1 | |