1.非严格次小生成树
结论:非严格次小生成树与MST只差一条边.
做法:求出MST。对于每一条不在生成树的边,加入到树中一定会成环.那么删除 除该边以外最大权值的边.得到新的价值,
.
具体算法:
1.跑一遍kursal算法。得到MST的价值V
2.对MST跑倍增算法,维护k级祖先以及到其的最大边权.
3.对于每一条不在MST的边E.查询两个点(u,v)之间的最大值res(这个可以在求LCA的过程中求得). 得到新价值 Val = V - res + E.len.
4.答案为:min(val)
相关应用:
1.求一张图的MST是否唯一.
求次小生成树,判相等即可
2.求必经过某条边的MST。
1.若该边在MST中.直接输出V
2.若该边不在MST中,将其加入MST,替换掉 环上除它之外的最大边权
2.严格次小生成树
结论:严格次小生成树与MST只差一条边.
原理:只要存在某一条 [不在MST中的边] 与环上的最大值相同 时,上述算法求得的次小生成树是不严格的。
做法:与上面大致相同。多维护一个严格次大的边权。 枚举边E时,当最大值 == E边权 则取次大值. 最后所有结果要取取最小值。
模板题: 洛谷P4180
3.瓶颈生成树
定义
无向图 的瓶颈生成树是这样的一个生成树,它的最大的边权值在 的所有生成树中最小。
结论:最小生成树一定是瓶颈生成树,而瓶颈生成树不一定是最小生成树。
4.最小瓶颈路
定义
无向图 中 x 到 y 的最小瓶颈路是这样的一类简单路径,满足这条路径上的最大的边权在所有 x 到 y 的简单路径中是最小的。
应用:
多次查询 任意两点 的 最小瓶颈路 的最大值. 处理方法和 次小生成树 一样。