注:所有的虚拟源点最后都需要检验出边是否满流,若未满流说明不存在。
无源汇上下界可行流:
去掉下界流量,虚拟源汇补流。
有源汇上下界最大流:
连接(T,S,容量inf),虚拟源汇补流,记(T,S)的反向边残余容量为初始流,删掉(T,S)后求S到T的最大流,记为附加流,答案=初始流+附加流。
有源汇上下界最小流:
有两种做法,第一种与上面的上下界最大流类似,改为删掉(T,S)后求T到S的最大流,答案=初始流-附加流。
第二种是先不连(T,S)的边,求一次虚拟源汇的最大流,然后连上(T,S)的边,再求一次虚拟源汇的最大流,此时(T,S)的反向边残余容量就是答案。
注意事项:
有多组数据时,不仅要将邻接表清零,tot置为1,还要将记录下界流量的数组清零。