次小生成树
前置知识:
- 图论
- 最小生成树
- 倍增求LCA
概念
次小生成树,分为严格次小生成树和非严格次小生成树。
一下设图为 G G G,最小生成树为 T T T,非严格次小生成树为 T ′ T' T′,严格次小生成树为 T ′ ′ T'' T′′。
非严格次小生成树:在图 G G G 的所有除了 T T T 的生成树中,最小的那个。即 T ′ ≥ T T'\ge T T′≥T。
严格次小生成树:在 G G G 的除了 T T T 的生成树中,最小的大于 T T T 的生成树。即 T ′ ′ > T T''>T T′′>T。
例题
解法:
想要求解(非)严格次小生成树,那么首先肯定需要建出最小生成树,然后在 T T T 上面修改。
假设我们已经建出 T T T:
首先可以想到,若要将 T T T 改为 T ′ T' T′ 或 T ′ ′ T'' T′′,仅需在 T T T 上面修改一条边。
那么我们就可以枚举非树边,尝试将其插入进去。
- 加入了 5 → 7 5\rightarrow 7 5→7,长度为 8 8 8 的非树边。
那么如果加入了一条边,肯定会构成环。 ( n − 1 + 1 ) = n (n-1+1)=n (n−1+1)=n。
上图即出现了环:
那么,上面的环中,除了 5 → 7 5\rightarrow 7 5→7 的这条外,就是 1 → 3 1\rightarrow 3