今天是高二上学年半期考的第3天,晚上一切已经归于平静。在文化课上,虽然之前欠下了很多作业,但这次考试并没有考砸,实在心情不错。虽然名义上已经退役,但我还需要进一步的砥砺。


第一题
P1377
网络流建模(三)

注意到如果对棋盘进行二分图染色,则放置任意一个棋子只会影响到另一个集合里面的选取情况。我们用通过连边(u,v)表示选u,v不能同时选,建出二分图,研究答案和此图的关系,不难发现是一个最大点独立集问题。

一般的,我们如果通过建边来表示不兼容关系,则利用最大点独立集的性质解题的关键前提是构造出二分图。
但如果没法建出二分图呢?比如将题目改为选取的点的左上,右上,左下,右下不可取?

发现不能选的集合如果按照常规的染色方法,竟然与被选的点在同一个集合里面——所以二分图就构不出来了。

但是我们可以尝试选用其他染色方法。
比如:
网络流建模(三)

可能改成这样还有贪心的做法,但可以通过这样转化为网络流问题。

更一般的:对于选定的点(x,y) ,
(x+a1,y+b1),(x+a2,y+b2),(x+a3,y+b3),(x+an,y+bn) 都不可取呢?这样可以构造出不可用这种改变染色方法做的情况。


第二题
大致题意是这样的:
“上图是一个3 * 3 的矩阵,方格内的1表示这个地方有敌人,0表示没有敌人,现在我们有很多箭,每根箭可以杀死一行或者一列的敌人,问题是,我们要杀死所有的敌人至要用到几根箭?”

发现一根箭可以杀死多个敌人。要杀死所有的敌人,允许多次伤害(即重叠),这相当于一个覆盖类问题。我们将横纵坐标分为两个集合,对于一个敌人(x,y),在x和y上连一条边,转化为最小顶点覆盖问题。


第三题:最大权闭合图
P1355
网络流建模(三)

《最小割模型在信息学竞赛中的应用》,胡伯涛
这篇论文里面有详细介绍。

总结一下:

1、定义一个闭合子图为有向图的一个点集|V|,其中每一个点出边所连接的点都在|V|内。
在一个有向无环图中,闭合图该性质反映了一个事件发生时,其他事件发生的必要关系
2、对于最大权闭合子图问题,我们实际要解决的就是一个相互关联的事件集的最大收益问题。
具体建图方法就是兴建源点S向每一个正权点连边,兴建汇点T向每一个负权点连边,容量为权值绝对值。对于原图中其他边,将其容量设为正无穷。
对新图求最小割,则答案为:
Ans=TotalCut
(正权点权值和Total,最小割Cut

在这道题中,以实验和仪器为点,对于实验以收益Wi为点权,向所需要的仪器连边。对于仪器以Ci为点权。这就转化为了一个最大权闭合子图问题。


参考的一些博客和论文

linkage1
linkage2


网络流建模(三)

相关文章: