src:源点

sink:汇点

  1. #include<queue>
  2. #include<iostream>
  3. #include<string.h>
  4. #include<stdio.h>
  5. using namespace std;
  6.  
  7. const int inf = ;
  8. const int maxn = , maxm = ;
  9. struct Edge{
  10. int v, f, nxt;
  11. };
  12. int src, sink;
  13. int g[maxn + ];
  14. int nume;
  15. Edge e[maxm*+];
  16. void addedge(int u, int v, int c){
  17. e[++nume].v = v;
  18. e[nume].f = c;
  19. e[nume].nxt = g[u];
  20. g[u] = nume;
  21. e[++nume].v = u;
  22. e[nume].f = ;
  23. e[nume].nxt = g[v];
  24. g[v] = nume;
  25. }
  26. void init(){
  27. memset(g, , sizeof(g));
  28. nume = ;
  29. }
  30. queue<int> que;
  31. bool vis[maxn +];
  32. int dist[maxn + ];
  33. void bfs(){
  34. memset(dist, , sizeof(dist));
  35. while(!que.empty()) que.pop();
  36. vis[src] = ;
  37. que.push(src);
  38. while(!que.empty()){
  39. int u = que.front();
  40. que.pop();
  41. for(int i = g[u]; i; i = e[i].nxt)
  42. if(e[i].f && !vis[e[i].v]){
  43. que.push(e[i].v);
  44. dist[e[i].v] = dist[u] + ;
  45. vis[e[i].v] = true;
  46. }
  47. }
  48. }
  49. int dfs(int u, int delta){
  50. if(u == sink){
  51. return delta;
  52. }else{
  53. int ret = ;
  54. for(int i = g[u]; delta && i; i = e[i].nxt){
  55. if(e[i].f && dist[e[i].v] == dist[u] +){
  56. int dd = dfs(e[i].v, min(e[i].f, delta));
  57. e[i].f -= dd;
  58. e[i^].f += dd;
  59. delta -= dd;
  60. ret += dd;
  61. }
  62. }
  63. return ret;
  64. }
  65. }
  66. int maxflow(){
  67. int ret = ;
  68. while(true){
  69. memset(vis, , sizeof(vis));
  70. bfs();
  71. if(!vis[sink])return ret;
  72. ret += dfs(src, inf);
  73. }
  74. return ret;
  75. }
  76. int main(){
  77. int n, m;
  78. while(scanf("%d%d", &n, &m)!=EOF){
  79. init();
  80. src = ;
  81. sink = m;
  82. for(int i = ; i < n; i++){
  83. int x, y, z;
  84. scanf("%d%d%d", &x, &y, &z);
  85. addedge(x, y, z);
  86. }
  87. printf("%d\n", maxflow());
  88. }
  89. }

dinic网络流模板的更多相关文章

  1. POJ 1273 Drainage Ditches(网络流dinic算法模板)

    POJ 1273给出M条边,N个点,求源点1到汇点N的最大流量. 本文主要就是附上dinic的模板,供以后参考. #include <iostream> #include <stdi ...

  2. DINIC网络流+当前弧优化

    DINIC网络流+当前弧优化 const inf=; type rec=record s,e,w,next:longint; end; var b,bb,d,q,tb:..] of longint; ...

  3. Power Network POJ - 1459 [网络流模板]

    http://poj.org/problem?id=1459 嗯,网络流模板...多源点多汇点的图,超级汇点连发电厂,用户连接超级汇点 Status Accepted Time 391ms Memor ...

  4. POJ 1815 - Friendship - [拆点最大流求最小点割集][暴力枚举求升序割点] - [Dinic算法模板 - 邻接矩阵型]

    妖怪题目,做到现在:2017/8/19 - 1:41…… 不过想想还是值得的,至少邻接矩阵型的Dinic算法模板get√ 题目链接:http://poj.org/problem?id=1815 Tim ...

  5. HDU1532最大流 Edmonds-Karp,Dinic算法 模板

    Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...

  6. hdu 2435 dinic算法模板+最小割性质

    #include<stdio.h> #include<queue> #include<string.h> using namespace std; #define ...

  7. POJ 1273:Drainage Ditches 网络流模板题

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 63339   Accepted: 2443 ...

  8. POJ 3281 [网络流dinic算法模板]

    题意: 农场主有f种食物,d种饮料,n头牛. 接下来的n行每行第一个数代表第i头牛喜欢吃的食物数量,和第i头牛喜欢喝的饮料数目. 接下来分别是喜欢的食物和饮料的编号. 求解:农场主最多能保证几头牛同时 ...

  9. 网络流dinic ek模板 poj1273

    这里只是用来存放模板,几乎没有讲解,要看讲解网上应该很多吧…… ek bfs不停寻找增广路到找不到为止,找到终点时用pre回溯,O(VE^2) #include<cstdio> #incl ...

随机推荐

  1. BOM头问题

    最近有不少在微博上谈论BOM头问题,BOM头会造成页面展示的乱码,xml分析出现问题.而我恰巧遇到一种情况,在wml页面中如果加上BOM头,PC浏览器(IE,火狐)和手机浏览器(UC)都很正常,而如果 ...

  2. 汇编下的i++与++i

    故事背景,一个正在c语言的家伙,问我++i 和 i++的问题,我当时因为要去上课没给他说,正好今晚有空就测试了一下如下代码: 编译环境:VS2010  语言:C++ #include <iost ...

  3. C 简单单元测试框架

    大约2年前,仿照GTEST写了个简单的C++单元测试框架. http://www.cnblogs.com/imlgc/archive/2012/02/09/2344506.html 后来用C写后台程序 ...

  4. 网站(Tomcat)超线程宕机

    网站大中午的又挂了····· 拷了日志如下: 2014-4-12 13:22:30 org.apache.tomcat.util.net.JIoEndpoint createWorkerThread信 ...

  5. 怎样卸载goldengate

    1. Log on to the database server (as oracle) where the GoldenGate software isinstalled.2. Change dir ...

  6. 深入剖析keil c51 --- 从汇编到c51

    第一节 main()函数和启动代码 汇编是从org 0000h开始启动,那么keil c51是如何启动main()函数的?keil c51有一个启动程序startup.a51,它总是和c程序一起编译和 ...

  7. css设置水平垂直居中

    关于CSS设置水平以及垂直居中的解决方案 想要水平居中? 内联的元素(文字)? .center-children { text-align: center;} 块级元素? .center-me { m ...

  8. 关于Action返回结果类型的事儿(下)

    原文:关于Action返回结果类型的事儿(下) using System;  using System.Collections.Generic;  using System.Linq;  using ...

  9. activity5 流程 入门

    http://blog.csdn.net/yangyi22/article/details/9225849 谢谢原文作者提供!

  10. System.Drawing.Image.Save(Savepath),保存为jpg格式,参数错误,文件0kb解决办法

    问题场景:asp.net给图片添加文字水印保存为jpg格式时出现标题所描述错误(图片为.jpg格式): 简单验证:用本机的画图程序打开,然后保存为jpg格式会出现警告框"画图程序不能存储该文 ...