网络流

网络流

入门套路

1.有些一眼看上去是费用流的题,可以用二分答案网络流解决

紧急疏散evacuate

2.最小割:找到不能同时选择的限制,然后建模

happiness

找到文理不能同时选泽,然后连边

网络流与二分图

Konig 定理

最小点覆盖 = 最大匹配

对二分图跑一遍最小割,对任意一个边,必然有一个顶点被选,否则s-t连通了

DAG 最小不相交路径覆盖

给你一个DAG,求出最少需要几条不相交路径,使其经过所有点。

拆成出点和入点,建立二分图,所有边只能从出点连向入点,一开始 \(n\) 个点,每个点一个路径,每条边可以让答案减少 \(1\),所以就是 \(n\) - 最大匹配

将一个问题转化到二分图上面

1.奇偶分组 bzoj3158千钧一发

2.黑白染色 P3355 骑士共存问题

最大权闭合子图

给你一个有点权的图,在所有的闭合子图中,它所包含的子图的点的点权之和是最大的。
s 连接正点权点, t 连接负点权点,原来的边均设为INF
最小割一定会只割断和s或者t直接相邻的边,所以我们取割集S,一定合法。我们用正点权和作为最大收益,考虑每次减少亏损,所以就是求最小割。

最小割树

针对无向网络构建一棵树,树上每条边 \((s, t)\) 表示原图中 \((s, t)\) 的最小割

性质:两点最小割可用树上路径最小值表示

构建方法:分治,在分治点里面每次随机选两个点,作为源汇跑最小割,之后在最小割树上连边,然后分成 \(S\), \(T\)两部分,继续构建

正确性就不证了(我不会),好像证这个的人不多。

注意:每次是针对全图跑最小割,而不是分治点

必须边和可行边

最小割的方案不只一种,求必须边和可行边
首先必须要求满流量
如果不满流量,这条边前后一定有满流量的,一定不选择这条边
对于一条边 \((u, v)\)
必须边:残量网络上,源点能到 \(u\)\(v\) 能到汇点。
可行边:残量网络上,不存在一条 \(u\)\(v\) 的路径
由于反向边的存在, 这条路径可以用 SCC 简单判断。

平面图最小割 = 对偶图最短路

在最短路上走一条边,就相当于原图割掉一条边

费用流优化建图

美食节
前缀和优化建图 志愿者招募

上下界网络流

https://www.cnblogs.com/liu-runda/p/6262832.html

posted @ 2022-12-08 19:59  CDsidi  阅读(48)  评论(0编辑  收藏  举报