首先说一下,什么是上下流,上下流也就是有上下界的网络流,正常的网络流都是只有上界,没有下界,但是当有下界限制的时候就可能出现因不能满足所有下界而无解的情况,这种问题一般分为三种问法,有源/无源可行流判断,有源最大流,有源最小流,首先先说下怎么处理上下界,首先对于一条边 from to min max,我们可以把他拆成两个部分,第一部分就是 from->to max-min ,max - min是除了限制以外可以自由流动的流量,我们可以简单的叫他自由边,然后第二部分有两部分组成,首先虚拟超级源点ss,超级汇点tt,然后建边from -> tt min 和 ss -> ss min,这么建边的原因是在流中,任何点的入流量都必须等于出流量,对于这两条边是必须流满的,所以叫必须边,如果有一条边没有流满,那么就是没有可行解。因为最后所有的点必须满足入流等于出流。
(1)有源/无源可行流判断 这个是最基础的,无论哪种问法都必须要先判断是否可行,对于有源的,我们可以直接建立一条边t -> s 0 inf ,这样就把有源变成了无源,对于无源的可行流判断,我们只要按照上面的建边拆边方式建图之后,跑一遍ss到tt的最大流,如果所有必须边都满流,那么就是有解,否则无解,如果要输出答案,在残余网络中找到非必须边,非必须边的流量加上该边的下限就行了(因为下限已经满流).