题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1497
分析:
这是在有向图中的问题,且边依赖于点,有向图中存在点、边之间的依赖关系可以考虑最大权闭合子图
假设a与b之间有权值为c的边(根据题意是双向边)
那么我们可以建一个新节点,点的权值为c,并指向a点和b点(单向),同时断掉原本a,b之间的双向边,a,b的点的权值是它们的花费(负的)
那么对于原问题就转化成了求最大权闭合子图的问题了
————————————————————————————————————————————————————————————————
最大权闭合子图
定义:有向图中选出一个点集V‘,必须满足对于V‘中的每个点,它的后继也在V’中,选出所有点权值和最大的点集V‘
算法:
弄一个源点S,汇点T,S连向所有权值为正的点,容量为点的权值,所有权值为负的点连向T,容量为点的权值的绝对值。
然后求最大权闭合子图就相当于求最小割,然后转化为最大流问题
证明:http://wenku.baidu.com/link?url=Q7LKOvCRFeMQkY1WulrZTAHjN3ud8gbhuqUOKwPbwmGDAmCB0_URdEkJ59WKWVRGn9xSg9TgbWSmhhBIMxvGS2wMbENrxre6ZuSeO2v3mX7
——————————————————————————————————————————————————————————————————
其实这一题有更优的算法,详见2007年集训队论文
[BZOJ 1497][NOI 2006]最大获利(最大权闭合子图)
原文:http://www.cnblogs.com/wmrv587/p/4307601.html