图论-网络流⑤-最大流解题②

图论-网络流⑤-最大流解题②

上一篇:图论-网络流④-最大流解题①

下一篇:图论-网络流⑥-费用流

参考文献:

暂无

大纲

  • 什么是网络流
  • 最大流(最小割)
  • D i n i c Dinic Dinic (常用)
  • E K EK EK
  • S a p Sap Sap
  • F o r d − F u l k e r s o n Ford-Fulkerson FordFulkerson(不讲)
  • H L P P HLPP HLPP (快)
  • 最大流解题 Start \color{#33cc00}\texttt{Start} Start End \color{red}\texttt{End} End
  • 费用流
  • E K EK EK 费用流
  • D i n i c Dinic Dinic 费用流
  • z k w zkw zkw 费用流
  • 费用流解题

  • 有上下界的网络流

  • 无源汇上下界可行流
  • 有源汇上下界可行流
  • 有源汇上下界最大流
  • 有源汇上下界最小流
  • 最大权闭合子图
  • 有上下界的网络流解题

上篇中讲解了最大流解题当中的两道经典例题,这一篇会讲进阶的网络最大流解题。

拍照

最小割经典例题,简讲。

s s s 连每次拍照,流量为获益。每个下属连 t t t,流量为交费。每次拍照连相关下属,流量为无穷。用最小割思想,要么牺牲收益,要么交费,答案为收益总和 − - 网络流图最小割。

[网络流24题]试题库问题

难度在于输出方案,需要掌握网络流的精髓。

只有你知道网络流每条边是什么意思,这题没有难点。蒟蒻就放一下输出方案部分的代码吧:

for(int i=1;i<=k;i++){
   
	printf("%d:",i);
	for(int j=g[i+tmp+1];j;j=e[j].nex){
   
		int to=e[j].adj;
		if(to>1&&to<=tmp+1&&e[j].fw)
			printf(" %d",to-1);
	}
	puts("");
}

奶牛隐藏

你现在有 5 5 5 分钟的看题时间和 2 2 2 分钟的谔谔时间。(我保证这题就是网络最大流题)[提示]


如果你实在做不出来,看了提示后可能恍然大悟。二分是个重要的思路,但这题怎么二分呢?首先这里的道路长度是不可以直接利用的, F l o y d Floyd Floyd 求一下节点两两直接的最短路,然后二分时间,如果两个节点可以走到,连边(因为有初始结束状态,所以拆点),然后跑普通的最大流。

整理一下:

二分时间 m i d t midt midt
s s s 向每个牛棚的一号点连流量为牛数的边
每个牛棚的二号点向 t t t 连流量为牛棚容量的边
对于每两个点 i , j i,j i,j,如果 d i s [ i ] [ j ] dis[i][j] dis[i][j] 小于等于 m i d t midt

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值