图论 - 网络流
定义
网络:一个特殊的有向图 \(G\),有容量和源汇点。
流:一个从边集映射到整数集 或实数集 的函数 \(f\),满足:
- 容量限制
- 流守恒性:除源汇点外,任意结点 \(u\) 有 \(\sum_{x \in V} f(u, x) - \sum_{x \in V} f(x, u)=0\)。
称 \(f\) 是一个 s-t 流,\(f\) 的 流量 为 \(\sum_{x\in V} f(u,t)\)。
割:若 \(\{S, T\}\) 是点集的划分 且 \(s \in S, t \in T\),称 \(\{S, T\}\) 为一个 s-t 割,\(\{S,T\}\) 的 容量 为 \(\sum_{u \in S} \sum_{v \in T} c(u, v)\)。
增广路:从 \(s\) 到 \(t\) 且只经过正流量边的路径。
残量网络 \(G'\):对增广路每条边的流量减小 \(x\),反向边流量增加 \(x\)。
最大流算法
最大流:
Dinic 算法:\(O(n^2m)\);EK 算法:\(O(nm^2)\)。
费用流:
SPFA 费用流:\(O(nm|f|)\);Dijkstra 费用流:\(O(|f|n\log m)\);capacity-scaling:

浙公网安备 33010602011771号