放下了一阵,现在写这个算法,感觉理解就透彻更多了.
最小费用最大流是在流达到最大的情况下,耗费最小的流.
什么意思, 就是贪心的找,每次找耗费最小的s-t 路, 给这条路增最大的流.
然后再找耗费最小的s-t路, 继续增流.
流不分贵贱(先后次序), 只要总流未超过最小割, 就肯定还能有一条路增流,最终到达最大流.
但是,这个过程每次增流都是增加耗费最小的流,这样操作下去,最后的最大流就是耗费最小的最大流了.
初始化时,(i,j)有费用k,则(j,i)有费用-k, 其他边的费用均为0即可, 无关紧要. 因为只有存在增广路的情况下才可能用到这些费用,既然没有路径, 这些费用值是不会用到的, 很安全, 甚至你可以随便给它赋值.