小结:网络流
概要:
这货很强大啊。isap和dinic都算很快的算法,目前貌似卡不了?spfa在费用流中找增广路。上下界的网络流可以用分离必要弧来做。
应用:
解决许多多约束最优化的问题。
技巧及注意:
网络流在于建模,但是首先得有个基础。
上下界网络流:整体思想就是分离下界,将原边连成上界-下界,终点的界和+=这个下界,起点的界和-=这个下界。处理完后,然后扫这些点,如果界和大于0,附加源连这个点容量为界和,反之连到附加汇容量为界和绝对值。具体看有上下界的网络流问题,例题:
费用流:用spfa找增广路增广,例题:
- 【BZOJ】1221: [HNOI2001] 软件开发(最小费用最大流)
- 【BZOJ】1834: [ZJOI2010]network 网络扩容(最大流+费用流)
- 【wikioi】1227 方格取数 2(费用流)
- 【wikioi】1913 数字梯形问题(费用流)
- 【BZOJ】1070: [SCOI2007]修车(费用流+特殊的技巧)(好神的题啊!!按顺序拆点!)
最大权闭合图(之前的应该都是最小割T_T):
- 最大权闭合图 && 【BZOJ】1497: [NOI2006]最大获利,注意求的是最小割,答案是sum-最小割。
- 【wikioi】1907 方格取数3(最大流+最大权闭合子图)
最小割:
最大流:
- 【wikioi】1034 家园(最大流+特殊的技巧)
- 【BZOJ】2929: [Poi1999]洞穴攀行(最大流)
- 【BZOJ】1189: [HNOI2007]紧急疏散evacuate(二分+bfs+网络流)(好题)
网络流解决线性规划:
- 【BZOJ】1061: [Noi2008]志愿者招募(费用流+数学)(第一道我做的费用流解决线性规划的题,很神)
最小路径覆盖:
对偶图:将平面图用最短路来求最小割,对偶图 && 【BZOJ】1001: [BeiJing2006]狼抓兔子(对偶图+最短路)
注意在sap中当退点的时候,d[u]=n,cur[u]=ihead[u];
源和汇的标号不要和其它的重了啊。这点一定要好好分析。
要分析可能有多少个点和边,要不然数组开小re啊!
二分图匹配中,dinic是O(sqrt(V)*E),不知道isap是不是一样。
博客地址:www.cnblogs.com/iwtwiioi 本文为博主原创文章,未经博主允许不得转载。一经发现,必将追究法律责任。