두 번째로 작은 스패닝 트리
Problem
https://www.acmicpc.net/problem/1626
Idea
- MST 를 찾는다
- MST에서 간선 하나를 지워보고 다시 MST를 찾는다
- 이중 새 edge 중 가장 작은 값이 MST2다 (최대 V개수만큼 mst를 생성해봐야한다 ㅜ)
개선이 필요
MST가 아닌 edge 중, ST 가 되도록 다른 edge를 끊어본다
가령 edge 14를 연결하면 cycle이 생기고, 이때 어느 edge를 제거해도 ST가 된다
이때 가장 큰 edge를 제거하는게 두번째 MST를 얻을 수 있다.
추가하려는 14길이의 edge node의 a, b 구간 (12->4) 중 트리에서 가장 긴 구간을 찾는다면, 이진탐색(lca)으로 12을 찾을 수 있다