A. 1565: 植物大战僵尸

考虑保护关系可能会出环,也就是其中任何一个一定不能被选。

注意环的出边也是无法被选的。

注意要找的环的出边并不是网络流建的图的出边,因为网络流反映的是必须选的关系,即由被保护者到保护者。

然后就是简单的最大权闭合子图。

 

B. 寿司餐厅

似乎并不是很难,但是没有想到。

考虑每次取出$(l,r)$,那么一定要取出$(l,r)$的任意一个子集。

简单的建边方法是建边$(l,r)->(l,r-1)$ $(l,r)->(l+1,r)$。

然后发现一个比较难搞的内容是统计选的花费,似乎可以简单转化为选$(x,x)$,必须选它后面代表花费的节点。

因为每次选第一个的花费不同,所以再连出一条$inf$边表示选第一个的花费,选的花费为差量就好了。

 

C. 51nod 1551 集合交易

因为保证任意$k$个集合的并集大于等于$k$,那么由

Hall定理的推论:

假设两边的点集分别为X,Y(假设|X|<=|Y|),

则二分图的最大匹配数为|X|−max{|W|−|N(W)|},其中W是X的子集

可得原图存在一个完美匹配。

那么每个集合可以找到它所对应的代表元素。

当选出$k$个集合时,因为其中每个集合对应着互不相同的代表元素,已经到达了$k$个的限制。

所以不能再有任意一个选择的集合含有的元素没有被选。

那么当选择一个集合时,它的每个元素所对应的集合都应该被选。

 

D. 2406: 矩阵

考虑检验答案小于等于$k$是否是可行的。

将行列分别放在二分图的左右部,分别向$s$ $t$连边。

行列之间连边对应所在格子,流量任意。

流量$1$对应着 源-行-列-汇 ,即一个格子对所在行列之和分别作出$1$的贡献。

于是行列之和通过上下界限制。

二分然后检验在该上下界意义下是否存在可行流就好了。

 

E. 支线剧情

上下界最小费用可行流。

$spfa$不断找最短路补流,然后就完事了。

按照我原来的理解这样并不合理:当$s$到$t$之间存在一条流量为负的增广路,可以在满足上下界的前提下使得费用更小。

然而$yxs$大神指出了这样的情况并不存在:因为$t$到$s$之间存在一个$0$费用边,如果存在流量为负的增广路,出负环$spfa$必死。

 

F. 1061: 志愿者招募

难点在于如何想到无源汇。

想到之后就没了,串联表示人员可以继承,通过上下界限制流量。

在起点,终点,每个员工的新建点之间建出一个环,然后跑无源汇上下界最小费用可行流就好了。

 

G. 旅行时的困惑

上下界最小可行流。

 

H. 清理雪道

上下界最小可行流。

在有源汇可行流的基础上,一个做法是:

取出t->s边的流量,即可行流中s到t的流量,表示已经流的流量。

删掉t->s这条边。

考虑在残量网络上t到s的流,对应着s到t的退流。

给该流量减去t到s的最大流,表示尽量大退流。

另一个做法是:

先不建t->s这条边,尽量补流,此时并不一定能跑满流。

之后建出t->这条边,在残量网络上仍能增广出的流量,是在尽量不走t->s这条边前提下的,即最小可行流。