CF704D Captain America 上下界网络流

传送门


现在相当于说每一个条件都有一个染成红色的盾牌的数量限制\([l,r]\),需要满足所有限制且染成红色的盾牌数量最小/最大。

注意到一个盾牌染成红色对于一行和一列都会产生影响。如果选中一个物品对两个物品有影响,那么不妨按照二分图的方式建图,就可以描述这种限制。

将横纵坐标离散化,对每一个横坐标和每一个纵坐标建一个点。对于所有的\(t=1\)的限制从\(S\)向对应横坐标连限制最紧的边,\(t=2\)的限制连向\(T\),中间对于每一种盾牌从其对应横坐标向纵坐标连边。

然后就是上下界那一套了。

值得注意的一件事情是第一次进行Dinic之后,原图的流是\(T \rightarrow S\)的边对应的反边的流量,而不是\(SS \rightarrow TT\)流过的流量。

代码

你可能感兴趣的:(CF704D Captain America 上下界网络流)