网络流建图模板及基本理论

sgu194 zoj3229 sgu176 zoj1994 zoj3496

主要是针对有上下界的网络流建图。

有上下界的网络流建图模板:

{
流量上下限的无源汇的可行流建图方法:
对于有流量上下限的无源的网络流的可行流转化为一般的有源汇点的最大流来做
(1)添加超级源点S和超级汇点T
(2)对于原有的边(u,v,l(u,v),c(u,v))(l为流量下限,c为流量上限),添加边(u,v,0,c-l);
(3)对于每个结点i,记w[i]=sum(l(u,i))-sum(l(i,v));//进来的的下界流量-出去的下界流
量,若w[i]>0,添加边(S,i,w[i]),若w[i]<0,添加边(i,T,-w[i]);
(4)求解S-T的最大流;
(5)当且仅当S的出边和T的入边满流,原流量限制的无源网络流可行流有解;
(6)一组可行流的解为:
对于每条流量边(u,v),可行流量为l(u,v)+其构造的图中的流量.
  
1.u到v建容量为C[u,v]-B[u.v]的边 //C是上界,B是下界
2.对于点u,记tmp为in[u]-ou[u],若tmp>0,则S向u建容量为tmp的边,若tmp<0,则u向T建边
,容量是-tmp。//in[u]记录u的入边的流量下界和,ou[u]记录u的出边的流量的下界和
若满流,则有解

流量上下限的有源汇的网络流(最大流)建图方法:
从汇点向源点建一条容量为INF的边,超级源点连i(w[i]>0),i连向超级汇点(w[i]<0),
对超级源点和超级汇点跑一次最大流,当maxflow=(w[i]>0)的和时,则有可行流,即有解。
有解就删除超级源点和汇点(超级源点和超级汇点之间的流量设成0,或者删除点),再对源
点和汇点跑一次最大流maxflow=(第一次流满下界的流+第二次能流通的自由流)


流量有上下限的有源汇的最小流建图:

1.u到v建容量为C[u,v]-B[u.v]的边 //C是上界,B是下界
2.对于点u,记tmp为in[u]-ou[u],若tmp>0,则S向u建容量为tmp的边,若tmp<0,则u向T建边
,容量是-tmp。//in[u]记录u的入边的流量下界和,ou[u]记录u的出边的流量的下界和

先跑一遍最大流,然后源点和汇点连一条容量为inf的边,再跑一遍最大流,就是解
}


最大权闭合图解法:源点向正权点连边对应点权值,原图边容量inf,负权点向汇点连边权值
绝对值,ans=正权和-最大流。 

最大流=最小割(边)=最小割(点)

以后自己还会逐渐更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值