网络流才学习,还是不怎么懂,一开始都是看网上写的算法模版,下面的两种方法也是用了网上的模版的:

方法一:
#include <iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=1e4+1,maxm=2e5+1;
int n,m,s,t,tot=1,head[maxn],vis[maxn];
struct edge{int to,next,w;
}e[maxm];
void add(int x,int y,int w){//采用链式前向星e[++tot].to=y;e[tot].w=w;e[tot].next=head[x];head[x]=tot;
}
int dfs(int x,int flow){if(x==t)return flow;vis[x]=1;for(int i=head[x];i;i=e[i].next){int y=e[i].to,w=e[i].w;if(w&&!vis[y]){int t=dfs(y,min(flow,w));if(t>0){e[i].w-=t;e[i^1].w+=t;return t;}}}return 0;
}
int main(){while(scanf("%d %d",&n,&m)!=EOF){memset(vis,0,sizeof(vis));memset(head,0,sizeof(head));for(int i=1;i<=n;i++){int x,y,w;scanf("%d %d %d",&x,&y,&w);add(x,y,w);add(y,x,0);}t=m;s=1;int res=0,ans=0;while(memset(vis,0,sizeof(vis))&&(res=dfs(s,1e9))>0){ans+=res;}printf("%d\n",ans);}return 0;
}
方法二:#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
const int maxn = 10050;
const int inf = 0x3f3f3f3f;
using namespace std;
typedef long long ll;
struct note{int u, v, w;int next;
}e[maxn*20];
int head[maxn], cnt;
int le[maxn];
int n, m, s, t;
void add(int u, int v, int w){e[cnt].u = u, e[cnt].v = v, e[cnt].w = w;e[cnt].next = head[u], head[u] = cnt++;e[cnt].u = v, e[cnt].v = u, e[cnt].w = 0;e[cnt].next = head[v], head[v] = cnt++;
}
bool bfs(){queue <int> q;memset(le, -1, sizeof(le));le[s] = 0;q.push(s);while(!q.empty()){int u = q.front();q.pop();for(int i=head[u]; i!=-1; i=e[i].next){int v = e[i].v;if(e[i].w > 0 && le[v]==-1){le[v] = le[u]+1;q.push(v);}}}return le[t] != -1;
}int dfs(int u, int inf){if(u == t)return inf;int flow = 0;for(int i=head[u]; i!=-1; i=e[i].next){int v = e[i].v;if(e[i].w > 0 && le[u] + 1 == le[v]){int tmp = dfs(v, min(inf-flow, e[i].w));e[i].w -= tmp;e[i^1].w += tmp;flow += tmp;}}if(!flow)le[u] = inf;return flow;
}
void Dinic(){int maxflow = 0, tmp;while(bfs()){while((tmp = dfs(s, inf))){maxflow += tmp;}   }printf("%d\n", maxflow);
}
int main(){while(scanf("%d %d", &m, &n)!=EOF){memset(head,0,sizeof(head));memset(le,0,sizeof(le));for(int i=0; i<=n; i++)head[i] = -1;for(int i=0; i<m; i++){int a, b, w;scanf("%d%d%d", &a, &b, &w);add(a, b, w);}t=n;s=1;Dinic();}return 0;
}

poj1273(最大网络流问题模版)相关推荐

  1. poj1273(网络流模板)

    题目链接:http://poj.org/problem?id=1273 思路:网络流裸题 #include <cstdio> #include <cstdlib> #inclu ...

  2. poj 3469(网络流模版)

    题目链接:http://poj.org/problem?id=3469 思路:终于把网络流的模版测试好了,在Dinic和Sap之间还是选择了Sap,事实证明Sap确实比Dinic效率高,在此贴出自己的 ...

  3. POJ1273 裸裸的网络流

    北京好热啊,宿舍还没空调,都不能安安静静地敲代码了~>_<~今天老师讲网络流完全没听啊,晚上想了好久的网络流,感觉还是没有完全理解,过了一道模板题. Drainage Ditches Ti ...

  4. [模版] 网络流最大流、费用流

    反向边作用讨论:http://blog.csdn.net/qq_21110267/article/details/43540483 我理解的很有限,希望有研究过的人能给我评论指导. 代码: By:Ru ...

  5. 网络流Dinic算法模板 POJ1273

    这就是以后我的板子啦~~~ #include <queue> #include <cstdio> #include <cstring> #include <a ...

  6. 【网络流】学习笔记:一次理解网络流!

    一.从概念入手 网络流用于解决流量问题 网络流:所有弧上流量的集合f={f(u,v)},称为该容量网络的一个网络流. 定义:带权的有向图G=(V,E),满足以下条件,则称为网络流图(flow netw ...

  7. 关于网络流sap算法

    今天终于学习了网络流..之前一直很怕这类问题,个人觉得网络流算是图论里面最难的了.... sap学习下来感觉一般,关于解法都是意识流,细节也是蛮多的.. 我这里先贴一份模版,自已也加了点注释(只是个人 ...

  8. POJ1273 Drainage Ditches(最大流基础题)

    在讨论问题之前先说一句,如果你这题WA了很久,请先看以下一句话,或许可以省下你翻遍全文的时间: 注意考虑重边.(是不是想大呼[Bi-]?传送门:http://poj.org/problem?id=12 ...

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

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

最新文章

  1. Linux内置的审计跟踪工具:last命令
  2. SQL、Linq和Lambda表达式 的关系
  3. JavaScript碎片—函数闭包(模拟面向对象)
  4. 考虑页面置换算法,系统有m个物理块供调度,初始时全空,页面引用串长度为p,包含了n个不同的页号,无论用什么算法,缺页次数不会少于( )
  5. Java线程同步的一些例子
  6. abaqus单位_ANSYS和ABAQUS哪个好,一个例子告诉你
  7. C/C++知识分享番外:如何申请一个腾讯地图用户Key?
  8. SD2.0-课程等待时候的摘抄
  9. ob_start()函数
  10. Nero 7序列号的验证方法
  11. 数字图像处理课程设计-疲劳检测系统
  12. 深度学习名词(中英文对照)
  13. SRS 流媒体服务器对http-flv流进行配置
  14. 使用地图编辑器构建游戏场景
  15. Linux动态频率调节系统CPUFreq之三:governor
  16. 智能、精准、节能丨极海APM32F103RCT7 LED车灯应用方案
  17. (转载)基于LBS地图的开发,满足地图上有头像的需求
  18. Python中的args和kwargs
  19. 苹果手机10秒解除锁屏_Redmi 10X手机密码忘了怎么办?手机10秒解除锁屏,三步解开安卓苹果密码【详细步骤】...
  20. 频繁跳槽的人简历是不是更容易被淘汰?

热门文章

  1. python模块之imghdr检测图片类型
  2. python字符串用法详解(str、下标、切片、查找、修改、判断)
  3. 工业视觉检测发展的现状
  4. 机器人视觉三维成像技术全解析
  5. Python 之父为什么嫌弃 lambda 匿名函数?
  6. 教您如何查看MySQL用户权限
  7. 洛谷3384:【模板】树链剖分——题解
  8. 自制ACL+DHCP实验(初版)
  9. 分布式数据库灵活存储机制与应用实践
  10. 浏览器--如何让登陆页面的表单不默认显示账号和密码