学习笔记::有上下界的网络流

1.无源无汇有上下界可行流

zoj2314

做法:每条边的两个顶点分别计算出流入流出的流量之差,记为in[u],如果in[u]<0,说明流出的比流入的多,那么他需要有一些补充,于是我们设立虚拟源汇,把u和T连接,容量为-in[u],如果in[u]>0,说明流进来的多了,需要有去处,就和S连接,容量为in[v]。对于每条边,容量为up[i]-low[i],然后跑最大流,每条边的流量即为low[i]+e[i^1].f 

判断可行:看S临边是否流满,未流满则无解。(源点和汇点效果等价,因为每条边的贡献正负相消)

Q:这个虚拟源汇是个什么东西?为什么这样做? A:有些点不满足流量平衡,如果少了,那么要补流,这些流量要找一个来源,所以和T相连,看这条边的来源是哪里。如果多了,这些流量要有个去处,就和S连一条边寻找去处

2.有源有汇有上下界可行流

 

posted @ 2017-03-25 09:20  19992147  阅读(110)  评论(0编辑  收藏  举报