上下界的网络流 建模方法总结 LOJ115 LOJ116 LOJ117

目录:

1)无源汇上下界可行流

2)有源汇上下界可行流

3)有源汇上下界最大流

4)有源汇上下界最小流

5)有源汇上下界最小费用流

6)例题

#无源汇#:指没有规定源点和汇点,有源汇反之。

#可行流#:可行流指任意可以流通的一种网络流方案。


网络流必知:

1.除了源点汇点,所有点流入的流量和流出的流量是相等的,时时刻刻都是。

2.每一条边的流量==反向边流量。


题目类型:给出一个网络图,n个点,m条边(有向无向皆可),每条边限制最大流量c,最小流量b。有源汇的图还会告知源点s,汇点t。

1)无源汇上下界可行流

此类题目一般判断 网络流是否可以满足流量的上下界限制并流通,比如下图A->C就是不流通的。


方法:将下界分离出来。

1)对于每条边(u,v):cap = c-b    //自由容量,将下界分离

2)设数组bout[],记录每一个点的 出边下界和 减 入边下界和。

设虚拟源点SS,虚拟汇点TT

遍历点,对每一个点u:

若bout[u]>0   建立 (u,TT) cap=bout[u]

bout[u]<0   建立边(SS,u) cap= - bout [u]

设变量bflow记录所有(u,TT) cap之和(用于验证满流)

4)求SS -> TT的最大流,若等于bflow,则存在可行流,否则图不流通。

 #理解#:

c-b是多余的容量,可流可不流,称为自由流,建立这样的边,就可用普通的网络流求最大流了。

对于分离出来的下界边,则要要求他们全部满流!

出边连接tt,入边连接ss,求ss->tt的最大流,若等于下界出边之和(或入边之和)则说明下界全部满流了。

可行流的计算:

              若验证存在可行流,每一条边的真实流量=下界+新图中该边流量

2)有源汇上下界可行流

方法:添加边 t->s,容量为INF(正无穷),此图变为无源汇上下界可行流。

#理解#:由于有源汇网络流中,除源汇点,每个点的入流恒等于出流,s->t的流量 == t->s的流量,让s->t循环起来。

3)有源汇上下界最大流

方法:建图同 有源汇上下界可行流。

1.跑一遍ss->tt最大流,记下t->s边上的流量为sum1

2.删掉附加边(与ss,tt相连的所有边),删掉添加的t->s那条无穷边,流量值不要动。变为残量网络。

3.在残量网络上 跑一遍s->t 最大流,记为sum2.

s->t的真正最大流 = sum1 + sum2

#理解#:

t->s的流量始终等于s->t的流量。

第一遍ss->tt最大流,验证是否有可行流,同时记下 s->t 流过了多少流量。

第二遍直接残量网络上的求s->t最大流。

第一遍时s->t的流量记下来,然后在残余的网络上跑一遍s->t,此时得到的最大流不包含第一遍最大流时通过的流量,故答案为两遍之和。

4)有源汇上下界最小流

方法:建图同 无源汇上下界可行流

1.跑一遍ss->tt最大流,记为sum1

2.添加边 t->s,容量为INF(正无穷)

3.再跑一遍ss->tt最大流,记为sum2

若sum1+sum2 == 下界出边之和,则有解,否则无解。

s->t最小流 = s->t边上的流量。

#理解#:

第一遍最大流,因为没有t->s边,流量不同,那么流量会尽量在图里流通。然后建边t->s,再求ss->tt最大流,这时s->t的流量就是尽量小的了,即最小流。

5)有源汇上下界最小费用流

待整理。。。。

6)例题讲解

LOJ 115 无源汇有上下界可行流http://blog.csdn.net/winter2121/article/details/79428557

LOJ 116 有源汇有上下界最大流http://blog.csdn.net/winter2121/article/details/79428792

LOJ 117 有源汇有上下界最小流http://blog.csdn.net/winter2121/article/details/79429920


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪的期许

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值