最小割 模型

例题:

有n个可能的中转站,建造它需要花费P[i],有m个用户群。对于第i个用户群,当A[i]和B[i]两个中转站都建起来后,他们能提供C[i]的收入,问能得到的最大获利。
n到5000,m到50000。


构图:

->节点:
— 源点s和汇点t
— 每个中转站一个节点
— 每个用户群一个节点
->边
— s到每个中转站连一条有向边,容量为P[i]
— A[i]和B[i]号中转站各向i号用户群连一条有向边,容量为正无穷
— 每个用户群向t连一条有向边,容量为C[i]

考虑此图的任意一个割,若这个割不包括前面的第二种边,那么这个割对应了一种建中转站的选择情况:
— s到i号中转站之间的边属于割,表示i号中转站要建设,否则不要建设。
— i号人群到t之间的边属于割,表示放弃i号用户群带来的收入,否则表示要拿取。
— 对于i号人群,若其与t之间的边没被割,那么A[i]、B[i]号中转站与s之间的边肯定都得割了,要不就不是割(s到t之间有路径了)。即:若要拿到i号人群的收益,就必须把其需要的中转站都建设起来。
因此此图的割容量,就是要付出的和少挣的钱,当然是希望越小越好。于是就变成最小割问题了。



•根据最大流最小割定理可知,我们只需要求此图的最大流就OK了。

•据说用Dinic算法,这一题可以秒杀,尽管点数和边数都是100000级别的。



Dinic算法理论上的时间复杂度是 O(V2E),但据说实际运行效果非常好,对于节点数万个,边数达十万条级别的随机图,都能很快的出解。是传说中超高效最大流算法。

模型:将成本作为待割边,(取消的成本作为保留边),利润作为保留边,(放弃的利润作为割边);成本和收益之间的关系边权记为+∞,(关系永远不可能被割掉)。 由于最小割的性质,如果成本被取消(边保留),则与之相关的利润就会作为割边被放弃;如果要获得利润(边保留),则与之相关的成本就会作为割边被消耗。(特别的,由最小性,不可能出现一个关系两端的边都被割掉,即消耗成本却放弃利润的现象)。故而所求得的最小割数值 =

                            成本和 + 放弃利润和



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值