最小度限制生成树
先看这篇题解
以前写的文字:他讲的第一个证明我花了好久看懂了:\(e\)指不在\(T\)上的边,\(P\)是\(T\)上从\(u\)到\(v\)的一条路径,那么如果\(e\)在最后答案的MST上,\(P\)上肯定至少有一条边没有被选择,在最终答案的MST删去\(e\)后,我们把\(P\)上没被选择的边都加入,那么\(u\)和\(v\)就会被重新连通,这就说明了\(e\)不可能是桥;回到删去\(e\)之前,此时删去\(e\),那么\(P\)上一定有一条边,加入这一条边后\(u\)和\(v\)重新连通(注意此时是一棵树,删去\(e\)后,\(u\)会在一个连通块\(A\),\(v\)会在一个连通块\(B\),然后如果没有一条边可以让\(u\)和\(v\)连通,就说明这些边要么都在\(A\),要么都在\(B\),就说明\(e\)是桥,与前文矛盾)
其中主要是
这两个部分的证明也就说明了为什么可以使用wqs二分
这篇文章还没有详细看,有空了详细看一下(这篇文章的方法也没看,还有洛谷第一篇题解)
update 2024.7.14
大体写法与“Tree I”一样,但是判断无解的话要注意,具体见代码,特别是最后一条判断无解,原因见这个讨论