首先任何有下界的边都要先记录下界的入度和与出度和,记作和。
然后对于点:
如果,则建边
如果,则建边
下面再分情况讨论其他的建边。
Case #1:无源汇上下界可行流
跑到的最大流。
结论:如果能使临边全部满流就存在可行流。对应每条边在原图的流量是下界+流过去的流量。
Case #2:有源汇上下界可行流
建边,跑到的最大流。
结论同上:如果能使临边全部满流就存在可行流。原图的总流量就是边的流量。对应每条边在原图的流量是下界+流过去的流量。
Case #3:有源汇上下界最大流
建边,跑到的最大流。记边的流量为
断掉边,跑到的最大流。
结论同上:如果能使临边全部满流就存在可行流。原图的总流量就是。对应每条边在原图的流量是下界+流过去的流量。
Case #4:有源汇上下界最小流
先不建边,跑到的最大流。
然后建边,跑到最大流。用临边是否满流判可行,此时边的流量就是原图最小流。对应每条边在原图的流量是下界+流过去的流量。