(模板)最大权闭合图

来源:互联网 发布:学生管理系统java 编辑:程序博客网 时间:2024/05/22 03:35

最大权闭合图:
在一个有向点带权图中,点权为w[],选取一些点构成集合,记为V,且集合中的出边(即集合中的点的向外连出的弧),
所指向的终点(弧头)也在V中,则我们称V为闭合图。
最大权闭合图即在所有闭合图中,集合中点的权值之和最大的V,我们称V为最大权闭合图。
解法:
添加源点S和汇点T,对每个权值为正的点u,连边(S,u),流量为w[u],
对权值为负的点u,连边(u,T),流量为-w[u]。
原图中的边(u, v),流量设为inf。
设最大流为C,则最大权闭合图W=tot-C,其中tot为所有权值为正的点权和。
并且最小割产生两个集合中,S所在集合(除去S)为最大权闭合图。
推导:
设最小割为(N,M),S属于N,T属于M,x1和y1分别为N集合正权之和与负权绝对值之和,
x2和y2分别为M集合正权之和与负权绝对值之和。
则W=x1-y1,C=y1+x2, W + C = x1 + x2 = tot;



0 0
原创粉丝点击