正式请看:https://oi-wiki.org/graph/flow/bound/
无源汇上下界可行流
新建源汇 S , T S,T S,T,若 a → b a\to b a→b 有 [ c , d ] [c,d] [c,d]。网络流中上界肯定满足。
我们变成:
- S → b , c S\to b,c S→b,c
- a → T , c a\to T,c a→T,c
- a → b , c − d a\to b,c-d a→b,c−d
因为我们求的是可行流。若 a a a 能流 c c c 到 b b b,则 b b b 必然可以流 c c c 回 a a a。前两天边就是为了实现这个判断的过程。最后一条是上界的限制。
有源汇上下界可行流
发现源点和汇点为特殊点,因为他们流入流量不等于流出流量。
所以 T → S , [ 0 , + ∞ ] T\to S, [0,+\infty] T→S,[0,+∞]
然后跑无源汇上下界可行流
有源汇上下界最大流
在有源汇上下界可行流的残余网络中删掉附加变跑 S → T S\to T S→T 最大流,最后加上可行流。
有源汇上下界最小流
同上,不过跑的是 T → S T\to S T→S 的最大流。然后让可行流减去这个最小流。
感性理解。