本blog重点是代码

  • 网络流的相关概念
    • 流网络(flow network)
    • 流(flow)
    • 网络的流
    • 残留网络(residual network)
    • 增广路径(augmenting path)
  • Edmonds-Karp
    • 算法思想
    • bfs模板
    • 调用EK&更新残留网络流模板
    • luogu的AC代码(EK版)
  • Dinic
    • 算法思路
    • 时间复杂度证明
    • bfs模板
      • 模板1
      • 模板2
    • dfs模板
      • 不带弧优化模板(最好别用)
      • 带弧优化模板
    • 不带弧优化版AC代码
    • 带弧优化AC代码
  • ISAP
    • 算法思想
    • bfs模板
    • dfs模板
      • 不带弧优化
      • 带弧优化
    • 不带弧优化版AC代码
    • 带弧优化版AC代码
  • Update(仅模板)
    • 无源汇有上下界可行流
    • 有源汇有上下界最大流
    • 有源汇有上下界最小流

综合了自己在网上看到的众多博客,多种多样,肯定有很多问题,欢迎各位Dalao指出

网络流的相关概念

流网络(flow network)

流网络G=(V,E)G=(V, E)G=(V,E)是一个有向图,其中每条边(u,v)(u,v)(u,v)均有一非负容量c(u,v)≥0c(u, v)≥0c(u,v)≥0
流网络中有两个特殊的顶点: 源点s和汇点t
假定每个顶点都处于从源点到汇点的某条路径上,就是说,对每个顶点v,存在一条路径s→v→ts→v→ts→v→t
GGG为连通图,且∣E∣≥∣V∣−1|E| ≥|V|-1∣E∣≥∣V∣−1

流(flow)

边的流是一个实值函数f,满足下列三个性质:
容量限制:对所有u,v∈Vu,v∈Vu,v∈V, 要求f(u,v)≤c(u,v)f(u, v) ≤c(u, v)f(u,v)≤c(u,v)
理解:流量不会超过边的容量
斜对称性:对所有u,v∈Vu,v∈Vu,v∈V, 要求f(u,v)=−f(v,u)f(u, v) = -f(v, u)f(u,v)=−f(v,u)
理解:一个方向的流是其反方向流的相反数。这是完善的网络流理论
不可缺少的,像用正负数来定义物理量一样。
流守恒性:对所有u,v∈V−s,tu,v∈V-{s, t}u,v∈V−s,t,要求∑vf(u,v)−∑wf(w,u)=0\sum_vf(u,v)-\sum_wf(w,u)=0∑v​f(u,v)−∑w​f(w,u)=0
理解:进入点u的总流量=离开点u的总流量

每条边上斜线前的数字是流量,后的数字是容量

网络的流

网络的流定义为f=∑f(s,v)f=\sum f(s,v)f=∑f(s,v)
即,从源点s出发的总流

最大流问题就是给出一个源点和汇点的流网络,希望找到从源点到汇点的最大值流

规定f(u,v)f(u,v)f(u,v)和f(v,u)f(v,u)f(v,u)最多只有一个正数(可以均为0)。若两个均为正数,可以消减一个
方向的流量
举个栗子:u给v三个苹果,v如果又给u三个苹果,那就相当于彼此之间没有给过苹果;u给v三个苹果,v给u五个苹果,就相当于v给u两个苹果。也就是说流如果都是正数,是可以相互抵消,达成协议的

残留网络(residual network)

边的残留容量:r(u,v)=c(u,v)−f(u,v)r(u,v)=c(u,v)-f(u,v)r(u,v)=c(u,v)−f(u,v)
残留网络一句话就是残留边所构成的一个网络流,且每条边的容量是严格为正的,即当0<f(u,v)<c(u,v)=>r(u,v)=c(u,v)−f(u,v)>00<f(u,v)<c(u,v)=>r(u,v)=c(u,v)-f(u,v)>00<f(u,v)<c(u,v)=>r(u,v)=c(u,v)−f(u,v)>0,这条边(u,v)(u,v)(u,v)仍在残留网络中

【网络流】最大流问题(EK算法带模板,Dinic算法带模板及弧优化,ISAP算法带模板及弧优化)上下界网络流相关推荐

  1. 有上下界的网络流1-无源汇带上下界网络流SGU194

    有上下界的网络流1-无源汇带上下界网络流SGU194 今天开始啃网络流了.对于求解无源汇带上下界的网络流,我们可以这样建图: 建图模型:          以前写的最大流默认的下界为0,而这里的下界却 ...

  2. 有上下界网络流 ---- Zoj3229 Shoot the Bullet|东方文花帖|【模板】有源汇上下界最大流

    学习资料+题目链接 题目大意: 模板讲解 #include <bits/stdc++.h> #define mid ((l + r) >> 1) #define Lson rt ...

  3. 有上下界网络流 ---- P4843 清理雪道(DAG图上最小路径重复边覆盖)【模板】有源汇上下界最小流

    题目链接 题目大意: 解题思路: 首先我们发现对于每条边至少要覆盖一次,最多覆盖无数次 那么就有点像上下界网络流了[1,INF][1,INF][1,INF]的限制关系 跑一边最小流就可以了!! #in ...

  4. 学习上下界网络流小记

    前言 这个上下界网络流是一个以前我这个巨弱弱想都不敢想的一个东西. 然而,最近一次比赛居然考了这个东东. 于是整个机房掀起了破烂学上下界网络流的热. 那么我也来学学. 预备知识 要懂得很多很多的网络流 ...

  5. 【有上下界网络流】【ZOJ】2314 Reactor Cooling

    [算法]有上下界网络流-无源汇(循环流) [题解]http://www.cnblogs.com/onioncyc/p/6496532.html //未提交 #include<cstdio> ...

  6. 上下界网络流-无源汇可行流与有源汇最大流

    上下界网络流 2021.9.3 无源汇上下界可行流 之前的最大流讨论一般为有源无下届情况,那么无源汇有上下界可行流应如何求解? 首先要做的是消除下边界,应如何做?在有下届情形下,流网络中的任意一条边的 ...

  7. [BZOJ2502]清理雪道 有上下界网络流(最小流)

    2502: 清理雪道 Time Limit: 10 Sec  Memory Limit: 128 MB Description 滑雪场坐落在FJ省西北部的若干座山上. 从空中鸟瞰,滑雪场可以看作一个有 ...

  8. [上下界网络流][二分] Bzoj P2406 矩阵

    题目描述 输入输出格式 输入格式: 第一行两个数n.m,表示矩阵的大小. 接下来n行,每行m列,描述矩阵A. 最后一行两个数L,R. 输出格式: 第一行,输出最小的答案: 输入输出样例 输入样例#1: ...

  9. BZOJ3698 XWW的难题(上下界网络流+gap优化的细节处理)

    XWW给你一个N*N的正实数矩阵A,满足XWW性. 称一个N*N的矩阵满足XWW性当且仅当:(1)A[N][N]=0:(2)矩阵中每行的最后一个元素等于该行前N-1个数的和:(3)矩阵中每列的最后一个 ...

  10. HDU4411 Arrest(负边权或上下界网络流建图)

    牵涉到必须经过每个点至少一次,所以拆点 把点iii拆分为iii和i+ni+ni+n iii到i+ni+ni+n可以走多次,但至少需要经过一次(代表经过这个点) 所以iii到i+ni+ni+n首先连一条 ...

最新文章

  1. 在express.js上启用HTTPS
  2. 开源的那些事儿之如何看待开源
  3. 进程间通讯,临界区,互斥
  4. Python 画樱花(动态画+飘落效果+暗色效)
  5. Linux常用服务部署与优化之NFS篇
  6. 在远程桌面在目标主机与客户机复制文件?
  7. $$watcher when is it filled
  8. 测试开发python面试_python测试开发面试之深浅拷贝
  9. java mysql jsp分页代码_JAVA/JSP学习系列之六(MySQL翻页例子)
  10. 第32月第8天 打包 Framework 时使用 CocoaPods 引入第三方库的方法
  11. golang 的枚举
  12. linux shell 常用参数 $? $# 等等解析
  13. ASP.NET 使用C#代码设置页面元素中的样式或属性
  14. win10显示nvidia控制面板的方法
  15. tomcat8安装及配置详细步骤(win10)
  16. SMOTE算法及其Python实现
  17. asp.net WEB 调用 CuteFTP8.0 ftpte.exe 实现大文件上传
  18. 纸飞机 --2013-08-08博客搬家
  19. 酷桌面:IPAD上体验office的炫“酷”移动办公应用
  20. k-选取问题之快速选取策略quickSelection

热门文章

  1. 震惊整个世界的新发现,科学界的大骗局
  2. 漫谈高数——泰勒级数的物理意义
  3. 《销售总监》读书笔记
  4. sql 触发器_一键生成某个sql的html--记录执行计划、统计信息、触发器等
  5. 截获android屏幕服务,如何捕获android设备屏幕内容?
  6. 计算机基础知识菜鸟教程,机器学习基础知识整理归纳
  7. python随机数生成验证码_Python随机数random模块学习,并实现生成6位验证码
  8. echarts 地图自定义图标_DMKB08:Echarts 分段设色
  9. 服务器磁盘系统,服务器磁盘阵列与操作系统
  10. 16位并行加载寄存器设计