最大流算法的Edmonds-Karp算法,实际用的不多因为复杂度比Dinic高,把流初始化为零流,Maxflow返回最大流的值,同时在算法结束时所有已标号结点(a[u]>0的结点)构成集合S,剩余结点构成集合T,则(S,T)是图的最小割

#include<bits/stdc++.h>
using namespace std;
const int maxn=10050;
const int inf=2e9;struct Edge{int from,to,cap,flow;Edge(int u,int v,int c,int f):from(u),to(v),cap(c),flow(f){}
};struct EdmondsKarp{int n,m;vector<Edge> edges; //边数的两倍vector<int> g[maxn];//邻接表,g[i][j]表示结点i的第j条边在e数组中的序号int a[maxn];        //当起点到i的可改进量int p[maxn];        //最短路树上p的入弧编号void init(int n){this->n=n;for(int i=0;i<n;++i) g[i].clear();edges.clear();}void add(int from,int to,int cap){edges.push_back(Edge(from,to,cap,0));edges.push_back(Edge(to,from,0,0));m=edges.size();g[from].push_back(m-2);g[to].push_back(m-1);}int Maxflow(int s,int t){int flow=0;while(1){memset(a,0,sizeof(a));queue<int> que;que.push(s);a[s]=inf;while(!que.empty()){int x=que.front();que.pop();for(int i=0;i<g[x].size();++i){Edge& e=edges[g[x][i]];if(!a[e.to] && e.cap>e.flow){p[e.to]=g[x][i];a[e.to]=min(a[x],e.cap-e.flow);que.push(e.to);}}if(a[t]) break;}if(!a[t]) break;for(int u=t;u!=s;u=edges[p[u]].from){edges[p[u]].flow+=a[t];edges[p[u]^1].flow-=a[t];}flow+=a[t];}return flow;}
};

转载于:https://www.cnblogs.com/wafish/p/10465275.html

网络流最大流Edmonds-Karp算法(模板)相关推荐

  1. 最大流(网络流基础概念+三个算法)

    下面是由一道题引发的一系列故事... 题目链接 http://poj.org/problem?id=1273 Drainage Ditches Time Limit: 1000MS Memory Li ...

  2. (通俗易懂小白入门)网络流最大流——EK算法

    网络流 网络流是模仿水流解决生活中类似问题的一种方法策略,来看这么一个问题,有一个自来水厂S,它要向目标T提供水量,从S出发有不确定数量和方向的水管,它可能直接到达T或者经过更多的节点的中转,目前确定 ...

  3. 网络流入门——算法模板,习题和解析

    最近一段时间再搞网络流,今天终于搞完了!!!!QAQ,好累呀. 首先是关于网络流的基础知识,这部分东西有点多,就不在这里说了,给几个有用的资源. 先推荐一下建图的博客:链式向前星,静态链表和邻接矩阵建 ...

  4. 最大流ISAP算法模板

    这两天学习了最大流,下面是ISAP算法模板: const int inf = 0x3fffffff; template <int N, int M> struct Isap {int to ...

  5. 网络流初步:最大流(Dinic算法)

    网络流初步:最大流 标签: 网络流 最大流 Dinic 最大流 例题 POJ****(USACO4.2.1) 在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地就积聚了一潭水.这意味着草地被水 ...

  6. 最大流算法模板:EK和dinic算法

    最大流算法模板:EK和dinic算法 一.EK算法模板 #include<iostream> #include<queue> using namespace std; cons ...

  7. 网络流——最大流EK算法讲解

    网络流--最大流EK算法讲解 好了,这是第二篇博客了,如第一篇所述,来讲一讲刚刚理解的网络流.因为本人只会EK算法,所以先讲这个算法.(我会去补知识点的!!!) 什么是网络流??? 读者们刚接触这个知 ...

  8. jiedai算法模板合集(正在肝2021.8.15)

    文章目录 基础模板 常用板子 数学题常用板子 输出挂 fread快读 高精度 分数类 打表压缩 基数排序 杂项 数据结构 树状数组 一维树状数组 二维树状数组 线段树 主席树 线段树合并/裂开 吉司机 ...

  9. 网络流 最大流 最小割 费用流

    [腾讯文档]网络流初步 网络流初步 文章目录 网络流初步 一.网络流简介 1. 网络 2. 流 3. 再次理解网络流 二.常见题型(三种) 三.相关问题对应算法介绍 1.最大流 (1) FF算法 - ...

  10. [Poj 1459] 网络流(一) {基本概念与算法}

    { 凸包的内容还欠整理 先来侃侃一个月以前就想写写的网络流 本文介绍网络流 网络流的算法 及其应用 这些问题没事想想还是很有意思的 } ================================ ...

最新文章

  1. 多视图立体匹配论文分享:P-MVSNet
  2. CSS3的background-size:可以设置高宽 百分比 最大大小 最小大小
  3. stcisp一直检测单片机_三种方法对比:STC51单片机实现免冷启动
  4. Elasticsearch 的一些关键概念
  5. C语言正函数nosign,Function declarations(函数声明)
  6. Bootstrap-学习系列
  7. 详细分析 Chrome V8 JIT 漏洞 CVE-2021-21220
  8. Python 导入requests报错No module named requests
  9. java 19 -2 异常以及tr...catch()的方法处理异常
  10. 小学多媒体计算机室管理计划,多媒体教室管理工作计划5篇
  11. linux运行j2me,Linux下用Eclipse搭建J2me开发环境过程
  12. 如何把pdf分割成多个?怎么把pdf文件分成多个?
  13. 在imitate中遇到的问题
  14. Word查找替换详细用法及通配符一览表
  15. Tomcat开启APR模式并设置Tomcat为开机自启动服务
  16. 打造最强终端之一:Fish shell简明教程
  17. ImportError: cannot import name ‘etree‘ from ‘lxml‘ 爬虫报错
  18. Spring Boot教程十六:SpringBoot注入类实现多线程
  19. 专业函数画图软件Origin
  20. 爱快安装或重置后,PC或手机端获取不到ip

热门文章

  1. GIt本地相关操作(一)
  2. CorelDRAW中将矩形变圆角的方法
  3. 人生第一次删好友,删的就是你!连路飞都怒了!
  4. WSUS3.0的安装及部署(域下)
  5. BS Model in option
  6. 《守望先锋》阵亡镜头、全场最佳和亮眼表现是如何设计
  7. 【转】汇编 代码段数据段堆区栈区
  8. 8月24日云栖精选夜读 | 阿里开源富容器引擎 PouchContainer 的 network 连接机制
  9. 2017-10-9(Volley使用范例源码分析)
  10. 1-2. linux系统结构