题目链接:poj1273 Drainage Ditches

呜呜,今天自学网络流,看了EK算法,学的晕晕的,留个简单模板题来作纪念、、、

 #include<cstdio>
#include<vector>
#include<queue>
#include<cstring>
#include<set>
#include<algorithm>
#define CLR(a,b) memset((a),(b),sizeof((a)))
using namespace std; const int N = ;
const int inf = 0x3f3f3f3f;
int n, m;
int g[N][N];//i到j的容量
int pre[N];//i的前驱节点
bool vis[N];
int flow[N][N];//从i到j的流量
int a[N];//从源点到i节点的最小残留量 int Edmonds_Karp(int st, int ed){
int u, v;
int f = ;//最大流
queue<int>q;//bfs找增广路
while(){
CLR(vis, ); CLR(a, );//每找一次记得初始化
q.push(st);
vis[st] = ;
a[st] = inf;
while(!q.empty()){
u = q.front(); q.pop();
for(v = ; v <= n; ++v){
if(!vis[v] && g[u][v] > flow[u][v]){
q.push(v);
pre[v] = u;
vis[v] = ;
a[v] = min(a[u], g[u][v] - flow[u][v]);
}
}
}
if(a[ed] == ) break;//当前已经是最大流
f += a[ed];
for(u = ed; u != st; u = pre[u]){
flow[pre[u]][u] += a[ed];
flow[u][pre[u]] -= a[ed];
} }
return f;
}
int main(){
int i, j, k, a, b, c;
while(scanf("%d %d", &m, &n)==){
CLR(g, ); CLR(flow, );
for(i = ; i < m; ++i){
scanf("%d %d %d", &a, &b, &c);
g[a][b] += c;//可能有重边
}
int max_flow = Edmonds_Karp(, n);
printf("%d\n", max_flow);
}
return ;
}

Poj 1273 Drainage Ditches(最大流 Edmonds-Karp )的更多相关文章

  1. poj 1273 Drainage Ditches 最大流入门题

    题目链接:http://poj.org/problem?id=1273 Every time it rains on Farmer John's fields, a pond forms over B ...

  2. POJ 1273 - Drainage Ditches - [最大流模板题] - [EK算法模板][Dinic算法模板 - 邻接表型]

    题目链接:http://poj.org/problem?id=1273 Time Limit: 1000MS Memory Limit: 10000K Description Every time i ...

  3. POJ 1273 Drainage Ditches 最大流

    这道题用dinic会超时 用E_K就没问题 注意输入数据有重边.POJ1273 dinic的复杂度为O(N*N*M)E_K的复杂度为O(N*M*M)对于这道题,复杂度是相同的. 然而dinic主要依靠 ...

  4. POJ 1273 Drainage Ditches | 最大流模板

    #include<cstdio> #include<algorithm> #include<cstring> #include<queue> #defi ...

  5. POJ 1273 Drainage Ditches(最大流Dinic 模板)

    #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n, ...

  6. poj 1273 Drainage Ditches(最大流)

    http://poj.org/problem?id=1273 Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Subm ...

  7. POJ 1273 Drainage Ditches (网络最大流)

    http://poj.org/problem? id=1273 Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Sub ...

  8. poj 1273 Drainage Ditches(最大流,E-K算法)

    一.Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clove ...

  9. poj 1273 Drainage Ditches【最大流入门】

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 63924   Accepted: 2467 ...

随机推荐

  1. SELECT时为何要加WITH(NOLOCK)

    此文章非原创,仅为分享.学习!! 要提升SQL的查询效能,一般来说大家会以建立索引(index)为第一考虑.其实除了index的建立之外,当我们在下SQL Command时,在语法中加一段WITH ( ...

  2. [Effective Java]第五章 泛型

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. EditPlus添加到右键菜单

    1.Alt+R 键打开“运行” 2.“运行”中输入:regedit 打开注册表    (1.在 "我的电脑HKEY_CLASSES_ROOT*" 下新建项 shell: (2.在 ...

  4. 【网络流24题----03】Air Raid最小路径覆盖

    Air Raid Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  5. phpcms 在后台增加了一个模型的话,在数据库中就会相应的增加数据库表

    在phpcms后台管理系统中,我们如果增加一个新的模型的话,例如名为:测试模型,英文名:test 在添加完成后,我们在数据库中发现增加了两个数据表:v9_test,v9_test_data;

  6. UC打通高德POI数据,用大数据描绘周边热点地图

    UC打通高德POI数据,用大数据描绘周边热点地图   2016-10-25 11:13  来源:互联网  我来投稿  我要评论   在北京工作的小李最近很苦恼,房东因小区周边规划了大型商场而坚持涨价. ...

  7. Visual Studio 2012 RC 中RC表示什么意思

    来自:http://zhidao.baidu.com/question/507233956.html Release Candidate 缩写为 RC ,经常用于计算机软件方面,表示软件的候选发布版. ...

  8. [转载] 深入理解Linux修改hostname

    原文: http://www.cnblogs.com/kerrycode/p/3595724.html 当我觉得对Linux系统下修改hostname已经非常熟悉的时候,今天碰到了几个个问题,这几个问 ...

  9. mysql批量替换数据库某字段部分内容

    update 表名 set 字段名=replace(字段名,’要替换的内容’,’替换后的内容’) eg:修改scenario表中的picture字段中的ip地址. UPDATE scenario SE ...

  10. phpStorm如何在Console控制台执行php文本,而不是浏览器中

    如何在Console控制台执行php文本 phpStorm默认会在浏览器中执行脚本 默认的配置 配置PHP脚本 扩展,配置项目运行