虽然算法还没有理解透,但以及迫不及待地想要A道题了。

非常裸的最大流,试试lrj的模板练练手。

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <algorithm>
  4. #include <vector>
  5. #include <queue>
  6. using namespace std;
  7.  
  8. const int maxn = + ;
  9. const int INF = ;
  10.  
  11. struct Edge
  12. {
  13. int from, to, cap, flow;
  14. Edge(int u, int v, int c, int f):from(u), to(v), cap(c), flow(f) {}
  15. };
  16.  
  17. int n, m, M;
  18. vector<Edge> edges;
  19. vector<int> G[maxn];
  20. int a[maxn]; //到起点i的可改进量
  21. int p[maxn]; //最短路数上p的入弧编号
  22.  
  23. void Init(int n)
  24. {
  25. for(int i = ; i < n; ++i) G[i].clear();
  26. edges.clear();
  27. }
  28.  
  29. void AddEdge(int from, int to, int cap)
  30. {
  31. edges.push_back(Edge(from, to, cap, ));
  32. edges.push_back(Edge(to, from, , )); //反向弧
  33. m = edges.size();
  34. G[from].push_back(m-);
  35. G[to].push_back(m-);
  36. }
  37.  
  38. int MaxFlow(int s, int t)
  39. {
  40. int flow = ;
  41. for(;;)
  42. {
  43. memset(a, , sizeof(a));
  44. queue<int> Q;
  45. Q.push(s);
  46. a[s] = INF;
  47. while(!Q.empty())
  48. {
  49. int x = Q.front(); Q.pop();
  50. for(int i = ; i < G[x].size(); ++i)
  51. {
  52. Edge& e = edges[G[x][i]];
  53. if(!a[e.to] && e.cap > e.flow)
  54. {
  55. p[e.to] = G[x][i];
  56. a[e.to] = min(a[x], e.cap-e.flow);
  57. Q.push(e.to);
  58. }
  59. }
  60. if(a[t]) break;
  61. }
  62. if(!a[t]) break;
  63. for(int u = t; u != s; u = edges[p[u]].from)
  64. {
  65. edges[p[u]].flow += a[t];
  66. edges[p[u]^].flow -= a[t];
  67. }
  68. flow += a[t];
  69. }
  70. return flow;
  71. }
  72.  
  73. int main()
  74. {
  75. freopen("in.txt", "r", stdin);
  76.  
  77. while(scanf("%d%d", &M, &n) == )
  78. {
  79. Init(n);
  80. int u, v, c;
  81. for(int i = ; i < M; ++i)
  82. {
  83. scanf("%d%d%d", &u, &v, &c);
  84. AddEdge(u-, v-, c);
  85. }
  86. printf("%d\n", MaxFlow(, n-));
  87. }
  88.  
  89. return ;
  90. }

代码君

POJ 1273 (基础最大流) Drainage Ditches的更多相关文章

  1. Poj(1273),最大流,EK

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 69355   Accepted: 2687 ...

  2. POJ 1273 网络流(最大流)模板

    http://poj.org/problem?id=1273 这道题很值得反思,弄了一下午,交上去先是一直编译错误,而在本地运行没有问题, 原因可能是oj的编译器版本老旧不支持这样的写法 G[from ...

  3. 网络流 最大流 Drainage Ditches Dinic

    hdu 1532 题目大意: 就是由于下大雨的时候约翰的农场就会被雨水给淹没,无奈下约翰不得不修建水沟,而且是网络水沟,并且聪明的约翰还控制了水的流速,本题就是让你求出最大流速,无疑要运用到求最大流了 ...

  4. POJ 2516 基础费用流

    题意       有n个顾客,m个供应商,k种货物,给你顾客对于每种货物的要求个数,和供应商对于每种货物的现有量,以及供应每种货物的时候供应商和顾客之间的运输单价,问你满足所有顾客的前提下的最小运输费 ...

  5. poj 2135 (基础费用流)

    题意:从1到n再到1,每条边只能走一次,求最短距离. 建图:每条边只能走一次就是流量是1,添加源点与1相连,容量为2,费用为0,n与汇点相连容量为2,费用为0: 求增广路用SPFA最短路求,, #in ...

  6. poj 1273 Drainage Ditches 网络流最大流基础

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 59176   Accepted: 2272 ...

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

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

  8. poj 1273 Drainage Ditches(最大流)

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

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

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

随机推荐

  1. 1090. Highest Price in Supply Chain (25)

    时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A supply chain is a network of r ...

  2. 基于C#利用金山取词组件实现屏幕取词功能

    这个程序在网上有很多例子,近期要做的项目中有和这个有某些一点点相似的地方,就练练,发现在本机上(Win 7 64位)不能实现其功能,可能原因是API组件太老了吧,毕竟金山大佬公布他的组件是2005年, ...

  3. Jsonp 跨域请求实例

    关于jsonp的一个实例,其实自己也不是很了解,今天下午稍微研究了一下: 简单来说,jsonp就是为了两个不同网站之间数据传递而产生的,主要用于js脚本,因为浏览器本身是禁止跨域访问的: 本机实例: ...

  4. EXTJS 4.2 资料 跨域的问题

    关于跨域,在项目开发中难免会遇到:之前笔者是用EXTJS3.0开发项目的,在开发过程中遇到了关于跨域的问题,但是在网上找到资料大部分都是ExtJs4.0以上版本的 在ExtJs中 例如:Ext.Aja ...

  5. 【BZOJ1305】 [CQOI2009]dance跳舞

    Description 一次舞会有n个男孩和n个女孩.每首曲子开始时,所有男孩和女孩恰好配成n对跳交谊舞.每个男孩都不会和同一个女孩跳两首(或更多)舞曲.有一些男孩女孩相互喜欢,而其他相互不喜欢(不会 ...

  6. 读书笔记汇总 --- 用Python写网络爬虫

    本系列记录并分享:学习利用Python写网络爬虫的过程. 书目信息 Link 书名: 用Python写网络爬虫 作者: [澳]理查德 劳森(Richard Lawson) 原版名称: web scra ...

  7. ios设备 分辨率(转)

    1 iOS设备的分辨率 iOS设备,目前最主要的有3种(Apple TV等不在此讨论),按分辨率分为两类 iPhone/iPod Touch 普屏分辨率    320像素 x 480像素 Retina ...

  8. 1187: [HNOI2007]神奇游乐园 - BZOJ

    Description 经历了一段艰辛的旅程后,主人公小P乘坐飞艇返回.在返回的途中,小P发现在漫无边际的沙漠中,有一块狭长的绿地特别显眼.往下仔细一看,才发现这是一个游乐场,专为旅途中疲惫的人设计. ...

  9. 基于注解风格的Spring-MVC的拦截器

    基于注解风格的Spring-MVC的拦截器 Spring-MVC如何使用拦截器,官方文档只给出了非注解风格的例子.那么基于注解风格如何使用拦截器呢? 基于注解基本上有2个可使用的定义类,分别是Defa ...

  10. 在TNSNAMES.ORA文件中配置本机装的oracle

    首先,感谢这两位网友:http://zhidao.baidu.com/link?url=eGYeoEa-EhQdVitSGqjE36uNfVmEsryXH1WUjPue6YvArDSx-Y1N9_rd ...