次小生成树
不是,这为什么是对的啊?
第二个方法见蓝书
我们来严格证明一下这个做法
首先证明严格次小生成树的边一定只会与最小生成树的边相差一条边(只有一条边不一样)
假设有两条边不一样,我们删除最小生成树中不在严格次小生成树中的两条边,图就会分裂成三个连通块,如下
红色虚线是被删除的边
然后严格次小生成树新加入的两条边一定会使这三个连通块再次联通
我们发现无论如何分配这两条边总可以找到一种方法使得我们找到一种更优的方法,如下
第一种情况
绿色是新加入的边
此时不可能两条红色的边都分别比各自对应的绿色的边大(不然的话我们最开始求的MST就不会选择两条红色边而只会选择两条绿色边了),于是就存在一条红色边的边权不超过其对应的绿色的边,于是就可以把这条绿色的边换成红色的边
第二种情况
证明同上面
综上,我们如果枚举每一条树边删除再选择加入一条边,那么肯定能得到严格次小MST
我们考虑转换对象,枚举非树边,易知这样并不会遗漏最优解