最大权闭合子图模型

写了几道这类题,觉得很有意思,有必要总结一下


什么是闭合子图?

对于一个有向无环图,它的一个闭合子图满足对于其中的任意一个点,从它出发能够到达的所有点都和它在同一个闭合子图中

比如下面这个图

它的所有闭合子图集合为:
,{3},{5},{4,5},{3,4,5},{2,3,4,5},{1,2,3,4,5}\emptyset,\{3\},\{5\},\{4,5\},\{3,4,5\},\{2,3,4,5\},\{1,2,3,4,5\}

其实就是走不到集合外的点,“闭合”的子图
——GoldenPotato

什么是最大权闭合子图?

对于一个点带正/负权的有向无环图,其最大权闭合子图在所有的闭合子图中,点权和最大

怎样用到题目中?

建立超级源点ss和超级汇点tt,从ss向所有点权为正的点连边,边权为点权;从所有点权为负的点向tt连边,边权为点权的相反数;原图中原本就存在的边之边权设为正无穷

那么最大权闭合子图的权值等于所有正权点之和减去最小割

证明:

以下引自https://www.cnblogs.com/TreeDream/p/5942354.html
字母比较多,请注意辨别和理解

首先我们要证明两个引理:
1.最小割一定是简单割
简单割指得是:割(S,T)(S,T)中每一条割边都与ss或者tt关联,这样的割叫做简单割。
因为在图中将所有与ss相连的点放入割集就可以得到一个割,且这个割不为正无穷。而最小割一定小于等于这个割,所以最小割一定不包含无穷大的边。因此最小割一定一个简单割。
2.简单割一定和一个闭合子图对应
闭合子图VV和源点ss构成SS集,其余点和汇点tt构成TT集。
首先证明闭合子图是简单割:若闭合子图对应的割(S,T)(S,T)不是简单割,则存在一条边(u,v),uS,vT(u,v),u∈S,v∈T,且c(u,v)=。说明uu的后续节点vv不在SS中,产生矛盾。
接着证明简单割是闭合子图:对于VV中任意一个点uuuSu∈Suu的任意一条出边c(u,v)=c(u,v)=∞,不会在简单割的割边集中,因此vv不属于TTvSv∈S。所以VV的所有点均在SS中,因此SsS-s是闭合子图。
由上面两个引理可以知道,最小割也对应了一个闭合子图,接下来证明最小割就是最大权的闭合子图。
首先有割的容量C(S,T)=TC(S,T)=T中所有正权点的权值之和+S+S中所有负权点的权值绝对值之和。
闭合子图的权值W=SW=S中所有正权点的权值之和S-S中所有负权点的权值绝对值之和。
则有C(S,T)+W=TC(S,T)+W=T中所有正权点的权值之和+S+S中所有正权点的权值之和=所有正权点的权值之和。
所以W=W=所有正权点的权值之和C(S,T)-C(S,T)
由于所有正权点的权值之和是一个定值,那么割的容量越小,WW也就越大。因此当C(S,T)C(S,T)取最小割时,WW也就达到了最大权。

形象理解

emmmm这个证明似乎有点看不懂

我们可以用 「Luogu2762」太空飞行计划问题煮个梨子

W教授YY他可以白嫖所有实验的收益(正权点权值之和)

但是他很快意识到他是要交钱的(选择某些正权点时必须也要选择负权点)

于是他画了个图来算花费(网络流图)

他必须舍弃一些实验的收益(割掉源与这个实验的连边)

或者保留这个实验并且吃掉所需仪器的而收费(割掉所需仪器与汇的连边)

他希望舍弃的收益和仪器的花费最少(最小割)

最终所有的收益减去这些舍弃的收益和仪器的花费即是W教授能赚到的最多钱

求方案

最大权可以通过跑最大流求得,那……如何求最大权闭合子图的点集呢?

证明中提到SsS-s是一个闭合子图,那么我们只需要跑完最小割之后,找到所有仍与ss相连的点即可

即最后一次增广(失败)找到阻塞流时,所有被分层了的点

例题

「BZOJ1497」[NOI2006]最大获利

「BZOJ1565」[NOI2009]植物大战僵尸

「Luogu2762」太空飞行计划问题