上下界网络流
全部默认有上下界。
理论知识:
1.无源汇 可行流。
首先要把下界流满,所以我们假装它满流了。
添加超级源汇ss,tt
如果一个点有流进来的下界,而新图中并没有,我们就人为从ss给它流一些进来。
反之就人为流一些出去给tt。
最后跑最大流,看你人为建的边是否满流,即可判定是否有解。
2.无源汇 最大/最小流。
这个都不知道怎么定义...见鬼去吧。
3.无源汇 最大/最小费用流。
这个倒是好定义,然而还是不会...你也跟着见鬼吧。
4.有源汇 最大/最小流
首先从t向s连INF,变成无源汇。
得出一组解之后删去ss,tt。此时t->s边上的流量就是图中流量。
然后再求s->t / t->s的最大流。
注意t->s的INF边,在最小流中需删去,答案加上之前t->s边上的流量。
在最大流中保留,求出来的直接是最终答案,不需要加上之前的流量(这部分在t->s的反向边中增广了)。
5.有源汇 最大/最小费用可行流。
t->s连INF,变成无源汇。
直接求最大/最小费用流即为答案。具体来说,还是用ss和tt处理下界,然后删掉ss,tt,t->s之后跑普通费用流。两次费用叠加。