由于兔的记性不如人类好,趁刷网络流刷得走火入魔,记一下最小割的 tricks。
最大流/费用流
添加基数流量
有些特别魔幻的问题,我们希望做到流“避开”一些边,就意义上,把一些边的流量设为负数可以表达这一问题。不过负数流量无意义,所以再统一加上一个足够大的流量。
典例
魔法题,我应该会补篇题解。(
最小割
(uleftrightarrow v) 型
直接利用原问题的关系或者图跑最小割,适用面不太广 qwq。
典例
一个图上一些点是黑色,一些点是红色,剩下的无色。为无色的点染色,使得两端点颜色不同的边的数量尽可能少。
“颜色不同”联想到割的 (S) 集和 (T) 集,横跨 (S-T) 的数量正是最小割的值。
(pleftrightarrow {v}) 型
形如“选了集合 ({v}) 内的所有点,再附赠价值”的限制,适用于此模型。模型的完整构图形如:
[Slongrightarrow^ ext{node's A-value}{v}longrightarrow^ ext{node's B-value}T\
Slongrightarrow^ ext{added value}plongrightarrow^{+infty}{v}
]
只要所有 (uin{v}) 选 (A) 种类(割掉到 (T) 的边),(S ightarrow p) 才能保留并获取收益。
典例
( ext{A-value}) 即选文科快乐值,( ext{B-value}) 即选理科快乐值,(p) 连接一个同学和其四周所有同学,表示他们选文/理时额外的收益。