두 번째로 작은 스패닝 트리

Problem

https://www.acmicpc.net/problem/1626

Idea

  1. MST 를 찾는다
  2. MST에서 간선 하나를 지워보고 다시 MST를 찾는다
  3. 이중 새 edge 중 가장 작은 값이 MST2다 (최대 V개수만큼 mst를 생성해봐야한다 ㅜ)

개선이 필요

MST가 아닌 edge 중, ST 가 되도록 다른 edge를 끊어본다

가령 edge 14를 연결하면 cycle이 생기고, 이때 어느 edge를 제거해도 ST가 된다

이때 가장 큰 edge를 제거하는게 두번째 MST를 얻을 수 있다.

추가하려는 14길이의 edge node의 a, b 구간 (12->4) 중 트리에서 가장 긴 구간을 찾는다면, 이진탐색(lca)으로 12을 찾을 수 있다