小结:网络流

概要:

这货很强大啊。isap和dinic都算很快的算法,目前貌似卡不了?spfa在费用流中找增广路。上下界的网络流可以用分离必要弧来做。

应用:

解决许多多约束最优化的问题。

技巧及注意:

网络流在于建模,但是首先得有个基础。

上下界网络流:整体思想就是分离下界,将原边连成上界-下界,终点的界和+=这个下界,起点的界和-=这个下界。处理完后,然后扫这些点,如果界和大于0,附加源连这个点容量为界和,反之连到附加汇容量为界和绝对值。具体看有上下界的网络流问题,例题:

  1. 【BZOJ】1458: 士兵占领(上下界网络流)

费用流:用spfa找增广路增广,例题:

  1. 【BZOJ】1221: [HNOI2001] 软件开发(最小费用最大流)
  2. 【BZOJ】1834: [ZJOI2010]network 网络扩容(最大流+费用流)
  3. 【wikioi】1227 方格取数 2(费用流)
  4. 【wikioi】1913 数字梯形问题(费用流)
  5. 【BZOJ】1070: [SCOI2007]修车(费用流+特殊的技巧)(好神的题啊!!按顺序拆点!)

最大权闭合图(之前的应该都是最小割T_T):

  1. 最大权闭合图 && 【BZOJ】1497: [NOI2006]最大获利,注意求的是最小割,答案是sum-最小割。
  2. 【wikioi】1907 方格取数3(最大流+最大权闭合子图)

最小割:

  1. 【BZOJ】1934: [Shoi2007]Vote 善意的投票(网络流/-二分图匹配)

最大流:

  1. 【wikioi】1034 家园(最大流+特殊的技巧)
  2. 【BZOJ】2929: [Poi1999]洞穴攀行(最大流)
  3. 【BZOJ】1189: [HNOI2007]紧急疏散evacuate(二分+bfs+网络流)(好题)

网络流解决线性规划:

  1. 【BZOJ】1061: [Noi2008]志愿者招募(费用流+数学)(第一道我做的费用流解决线性规划的题,很神)

最小路径覆盖

  1. 【wikioi】1904 最小路径覆盖问题(最大流+坑人的题+最小路径覆盖)
  2. 【BZOJ】1927: [Sdoi2010]星际竞速(二分图+费用流)

对偶图:将平面图用最短路来求最小割,对偶图 && 【BZOJ】1001: [BeiJing2006]狼抓兔子(对偶图+最短路)

注意在sap中当退点的时候,d[u]=n,cur[u]=ihead[u];

源和汇的标号不要和其它的重了啊。这点一定要好好分析。

要分析可能有多少个点和边,要不然数组开小re啊!

二分图匹配中,dinic是O(sqrt(V)*E),不知道isap是不是一样。

原文地址:https://www.cnblogs.com/iwtwiioi/p/4002602.html