SW算法是一种求全局最小割的算法,复杂度为O(|V||E|+|V|^2log|V|)
算法类似于Prim算法:
每次从1节点开始,初始集合为{1}
每个节点的权值为他对于这个集合每个有边直接相连的顶点边权之和,设为dis[u]
每次找dis最大的点加入这个集合
设最后加的点为s,倒数第二加的点为t,那么dis[t]就是s-t的最小割,更新答案。
将t缩到s里面,再来一次(缩就是类似强连通分量那个缩点一样
如果用fib堆或pairing堆就可以O(1)修改,O(logn)每次找dis最大的点
其实这个题SW算法跑一次循环就能过...