码迷,mamicode.com
首页 > 其他好文 > 详细

网络流24题之太空飞行计划

时间:2014-12-07 11:16:14      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:style   os   sp   on   问题   bs   size   nbsp   网络   

题目大意:

有n个实验要做,做掉奖励相应的钱,但是每个实验需要相应的仪器,每个仪器启动起来要相应的钱,安排使得赚钱最多。

 

首先引入一个闭合图的概念。

闭合图就是原图的一个子图,如果一个点u在这个子图内,那么它连出去的所有点v也要在这个子图内。

最大权闭合图就是点的权值和最大的闭合图。

 

模型分析:

1.很明显这是一个二分图,每个实验向需要的仪器连有向边,实验的点权为正,仪器的点权为负,要求最大权闭合图。

2.这是一个选或不选的问题,所以可以转化成最小割的模型,把选的归为S集,不选的归为T集。但是要求获利最大,最小割是最小,所以我们要换个角度,要求扣的钱最少,因为所有实验的前都加起来是一定的。

3.在最小割中,如果把S到所有试验表示的点连一条容量为奖励的钱(A类弧),所有仪器到T连一条容量为启动仪器的钱(b类弧),如果把A类弧割掉了,那么对应的那个实验就归到了T集,也就是不做了,那么就会有损失。如果把B类弧割掉了,那么相应的那个仪器归到了S集,也就是有损失。所有最小割就是使得损失最少的方案。

 

构图方法:

1.增加源点S和汇点T。

2.从S到所有实验连一条边,容量为其获利,从所有仪器到T连一条边,容量为其花费。

3.从每个实验到相应的仪器连容量为inf的边.

 

用上述方法实际上只能过10/12的点,因为没有特判定,默认是做的实验越多越好.也就是说有多个最小割的时候,尽可能少割A类弧。所以我们可以把所有弧的容量都乘以一个较大的数,然后让A类弧的容量都+1。这样求出的最小割一定是原图的最小割,并且尽可能少割A类弧. 经过测试通过了所有测试点。

 

总结:

1.最大权闭合图的通用解法:S到正权值的点连边,容量为其权值,负权值的点到T连边,容量为其绝对值,然后原图中的边容量为inf,ans=所有正权和-最小割。具体证明可以参考胡伯涛的论文。

网络流24题之太空飞行计划

标签:style   os   sp   on   问题   bs   size   nbsp   网络   

原文地址:http://www.cnblogs.com/vb4896/p/4149107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!