SW算法?!bzoj3345

SW算法是一种求全局最小割的高效算法,复杂度为O(|V||E|+|V|^2log|V|)。它类似于Prim算法,从1节点开始,维护每个节点到集合的边权之和dis[u],每次选择dis最大的节点加入集合。通过不断更新和节点收缩,最终找到最小割。使用fib堆或pairing堆可以优化操作。在bzoj3345题目中,一次SW算法循环或贪心策略可能已足够解决。
摘要由CSDN通过智能技术生成

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算法跑一次循环就能过...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值