关于网络流的 Trick
拆点
有一个限制只关于一个节点本身,那么拆。
需求类问题
- 考虑把需求连向汇点,那么求(最小费用)最大流就行了。https://www.luogu.com.cn/problem/P1251
- 考虑建需求缺口,把预期最大流变成 \(inf\),然后建流量为 \(inf - \text{需求}\) 的边,最后跑最大流。https://www.luogu.com.cn/problem/P3980
特殊:有的时候需求是上下界,那么要跑一个最小费用流。
https://www.luogu.com.cn/problem/P3980(只是举例,这题最后不能这么做)
最小割模型
有多种选择
- 可以连一条链,选一种方案就是割其中一条边。https://www.luogu.com.cn/problem/CF1146G
- 拆贡献,变成下文的两种选择 https://www.luogu.com.cn/problem/CF1427G
有两种选择
连向源、汇各表示一种选择。
有顺序的做一些操作
可以考虑建点:第 \(i\) 次做 \(j\)。
https://www.luogu.com.cn/problem/P2050
一面对多面
注意,这种不存在直接的见图方法。
此时我们可能考虑把网络流建成一条链,然后一面对多面变成一个前向边。
https://www.luogu.com.cn/problem/P3980
与链有关
考虑拆点建二分图,
- 让链最多:拆点,两个点 \((x, y)\) 有边起来刻画成 \(x + n \to y\),那么一单位的流量就是一条链。 https://www.luogu.com.cn/problem/P15246
- 让链最少:拆店,两个点 \((x, y)\) 有边起来刻画成 \(x\to y + n\),那么一单位的流量就是 \(-1\) 条链。

浙公网安备 33010602011771号