首先,对于无源汇的上下界可行流,常见做法是拆边:

然后转换成无下界的模型去做:

即添加源汇s, t,然后将任意一条边(u, v, l, c)(即u到v,下界l,上界c的边)拆成三条:
(u, v, 0, c - l), (s, v, 0, l), (u, t, 0, l)
其思想实际就是让所边的下界流量的分离出来,作为一条"必要边"(即如果有可行流,这些容量为下界的边一定是满的),让其统一流入汇,然后让源点来提供这样的流量。
然后在这个网络上求最大流。看最大流是否 == 所有边的下界之和。

如果题目已经有了源汇,我们就先连一条(t, s, 0, 无限大)的边(显然这不影响流量平衡条件)。这样就转换成了前面所说的无源汇的情况,然后求之。
输出的结果就让相应原始边的流量加上他们的下界就可以了(即边(u, v, 0, c - l)的流量 + l)。

对于有源汇的上下界最大流 可以二分枚举(t,s)边的容量下界,判断是否存在可行流。
对于有源汇的上下界最小流 可以二分枚举(t,s)边的容量上界,判断是否存在可行流。

SGU194