关于
这个算法是在接触太空飞行计划问题时接触到的。为了解决这道问题,我在网上查阅了相当多的资料,在这里整理给大家。题目点击打开链接https://www.luogu.org/problemnew/show/P2762
开始
闭合图的含义,就是在一张图中,我们选取一些点构成集合,记为V,且集合中的出边所指向的终点也在V中,我们就称V为闭合图。也就是说,一张图中的点,他们的儿子也在这张图中。
像上面这张图,图中的闭合图就有(1,2,3,4),(1,2,3,4,5),(2,3),(2,3,5),(2,3,4),(2,3,4,5),(3),(3,5)。
对没错,而我们也可以把太空飞行计划问题转化为求最大权闭合子图的问题,正如给上图的每个点加上一个权值,如果是实验则为正,仪器则为负。如下图。
样例如上,那么我们从含义来找答案,闭合图是不是一定要满足儿子也在这个集合里面,就像题目中实验和仪器的关系一样。那么我们就可以马上建出上面这张图,明显的,最大权闭合图的值就是10+25-5-6-7=17;
很多人会说,你这么说谁都会,但是怎么用网路流来实现呢?
我们从begin连一条流量为权值的边到每个实验,从每个仪器连一条流量为权值的绝对值的边到end。
而原来的边的流量都改为INF。如下图。
我们先来阐明一个结论,最小割把整个网络分为两个部分,其中含begin的部分,我们称为V。含end的部分,我们称为P;在V中,除begin外为最大权闭合子图。
我们先来说明两个引理。
**1.最小割是简单割。
简单割指的是一个割中的边都与begin或end相关联。
因为把与begin相连的所有边为A割,而最小割肯定小于或等于A割,而如果最小割不是简单割,那么就包含流量为INF的边,又因为最小割小于或等于A割,所以矛盾。最小割为简单割。
**2.简单割与闭合图一一对应。
那么我们需要说明两个东西。
1.闭合图是由简单割割出来的,如果闭合图不是由简单割割出来的,那么说明割掉了一条流量为INF的边,所以这时闭合图中的某个点的所连边的终点不在集合中,矛盾。
2.简单割构成的一定是闭合图,因为简单割中不包含流量为INF的边,所以对于闭合图中的任意连边两点u,v,c(u,v)=INF;这条边不会被割掉,所以简单割构成的一定闭合图。
终极奥义,证明结论。
我们设一个东西C=V中的负权点的权值的绝对值+P中正权点的权值;(这个就是割集的边的权值和,因为这些东西都写在边上了,网络流的时候在点上是没有任何东西的。)
设W=V中的正权点的权值-V中负权点的权值的绝对值。
W+C=P中正权点的权值+V中正权点的权值。
那么W+C及为所有正权点的和。
设W+C=tot;那么我们知道C为割,W为我们要求的值,tot很明显不变。我们想尽量使我们要求的W尽量大,那么C就要尽量小,所以C就是最小割,我们跑一遍最大流就可以实现。
完了,题解专题中有写。谢谢,不懂评论问我。