裸的网络流,递归的dinic会爆栈,在第一行加一句就行了

  1. #pragma comment(linker, "/STACK:1024000000,1024000000")
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <cstring>
  6. #include <algorithm>
  7. #include <vector>
  8. #define Maxn 120010
  9. #define Maxm 210000
  10. #define LL int
  11. #define inf 100000000
  12. #define Abs(a) (a)>0?(a):(-a)
  13. using namespace std;
  14. struct Edge{
  15. int from,to,next;
  16. LL val;
  17. }edge[Maxm];
  18. const double eps=1e-;
  19. LL value[Maxn];
  20. int head[Maxn],work[Maxn],dis[Maxn],q[Maxn],e,vi[Maxn];
  21. void init()
  22. {
  23. e=;
  24. memset(head,-,sizeof(head));
  25. }
  26. void add(int u,int v,LL c)//有向边
  27. {
  28. edge[e].to=v;edge[e].val=c;edge[e].next=head[u];head[u]=e++;
  29. edge[e].to=u;edge[e].val=c;edge[e].next=head[v];head[v]=e++;
  30. }
  31. int bfs(int S,int T)
  32. {
  33. int rear=;
  34. memset(dis,-,sizeof(dis));
  35. dis[S]=;q[rear++]=S;
  36. for(int i=;i<rear;i++)
  37. {
  38. for(int j=head[q[i]];j!=-;j=edge[j].next)
  39. {
  40. if(edge[j].val&&dis[edge[j].to]==-)
  41. {
  42. dis[edge[j].to]=dis[q[i]]+;
  43. q[rear++]=edge[j].to;
  44. if(edge[j].to==T) return ;
  45. }
  46. }
  47. }
  48. return ;
  49. }
  50. LL dfs(int cur,LL a,int T)
  51. {
  52. if(cur==T) return a;
  53. for(int &i=work[cur];i!=-;i=edge[i].next)
  54. {
  55. if(edge[i].val&&dis[edge[i].to]==dis[cur]+)
  56. {
  57. LL t=dfs(edge[i].to,min(a,edge[i].val),T);
  58. if(t)
  59. {
  60. edge[i].val-=t;
  61. edge[i^].val+=t;
  62. return t;
  63. }
  64. }
  65. }
  66. return ;
  67. }
  68. LL Dinic(int S,int T)
  69. {
  70. LL ans=;
  71. while(bfs(S,T))
  72. {
  73. memcpy(work,head,sizeof(head));
  74. while(LL t=dfs(S,inf,T)) ans+=t;
  75. }
  76. return ans;
  77. }
  78. int main()
  79. {
  80. int n,m,i,j,num=,t,a,b,west=,east=-,S,T;
  81. LL c;
  82. scanf("%d",&t);
  83. while(t--)
  84. {
  85. init();
  86. west=,east=-;
  87. scanf("%d%d",&n,&m);
  88. for(i=;i<=n;i++)
  89. {
  90. scanf("%d%d",&a,&b);
  91. if(a<west)
  92. west=a,S=i;
  93. if(a>east)
  94. east=a,T=i;
  95. }
  96. for(i=;i<=m;i++)
  97. {
  98. scanf("%d%d%d",&a,&b,&c);
  99. add(a,b,c);
  100. }
  101. LL ans=Dinic(S,T);
  102. printf("%d\n",ans);
  103. }
  104. return ;
  105. }

hdu 4280 网络流的更多相关文章

  1. HDU 4280 Island Transport(网络流,最大流)

    HDU 4280 Island Transport(网络流,最大流) Description In the vast waters far far away, there are many islan ...

  2. 【解题报告】 Leapin' Lizards HDU 2732 网络流

    [解题报告] Leapin' Lizards HDU 2732 网络流 题外话 在正式讲这个题目之前我想先说几件事 1. 如果大家要做网络流的题目,我在网上看到一个家伙,他那里列出了一堆网络流的题目, ...

  3. HDU 4280 Island Transport(无向图最大流)

    HDU 4280:http://acm.hdu.edu.cn/showproblem.php?pid=4280 题意: 比较裸的最大流题目,就是这是个无向图,并且比较卡时间. 思路: 是这样的,由于是 ...

  4. HDU 4280 Island Transport(网络流)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:pid=4280">http://acm.hdu.edu.cn/showproblem.php ...

  5. (网络流) Island Transport --Hdu -- 4280

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4280 源点是West, 汇点是East, 用Dinic带入求就好了 代码:要用c++提交 #pragma ...

  6. HDU 4280 Island Transport

    Island Transport Time Limit: 10000ms Memory Limit: 65536KB This problem will be judged on HDU. Origi ...

  7. HDU 4280:Island Transport(ISAP模板题)

    http://acm.hdu.edu.cn/showproblem.php?pid=4280 题意:在最西边的点走到最东边的点最大容量. 思路:ISAP模板题,Dinic过不了. #include & ...

  8. hdu 4280 最大流

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4280 #pragma comment(linker, "/STACK:1024000000, ...

  9. HDU 1083 网络流之二分图匹配

    http://acm.hdu.edu.cn/showproblem.php?pid=1083 二分图匹配用得很多 这道题只需要简化的二分匹配 #include<iostream> #inc ...

随机推荐

  1. How to include cascading style sheets (CSS) in JSF

    In JSF 2.0, you can use <h:outputStylesheet /> output a css file. For example, <h:outputSty ...

  2. [iOS基础控件 - 6.9.2] 静态单元格 QQ功能列表

    使用storyboard设计静态的表格数据   A.实现步骤 1.控制器继承UITableViewController 2.在storyboard中使用TableViewController,删除原来 ...

  3. Linux下修改用户home目录

    一般在Linux上新建一个用户,会在/home目录下自动创建一个以用户名命名的home目录 修改linux下用户自动建立的家目录 vi编辑器打开/etc/default/useradd 这个文件,然后 ...

  4. 一个简洁通用的调用DLL函数的帮助类

    本次介绍一种调用dll函数的通用简洁的方法,消除了原来调用方式的重复与繁琐,使得我们调用dll函数的方式更加方便简洁.用过dll的人会发现c++中调用dll中的函数有点繁琐,调用过程是这样的:在加载d ...

  5. ALT(预警)

    1. Alert简介 Alert是一种Oracle系统中的一种机制,它可以监视系统数据库,在规定的情况下给规定用户一个通知,通知可以是邮件或者其他形式,在标注的系统和客户化系统中都是可以定义使用的 2 ...

  6. 小谈chrome调试命令:console.log的使用

    相信从事前端开发的您,一定不会陌生Mozilla五星级推荐的一款插件:firebug,它是如此强大,乃至于我们可以很方便地调试DHTML的近乎所有元素.而在它深邃的机体里,还存有一个命令:consol ...

  7. Squid 日志详解

    原文地址: http://www.php-oa.com/2008/01/17/squid-log-access-store.html access.log 日志 在squid中access访问日志最为 ...

  8. php error file_get_contents()

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  9. C# is与as

    1.使用场景: 强制类型转换,有可能会导致异常.is与as就是为了解决这一问题,is与as永远不会抛出异常. 2.is判断一个对象是否兼容于指定的类型,考虑里氏代换.Dog是Animal,而Anima ...

  10. Android-L-Samples

    https://github.com/s3xy4ngyc/Android-L-Samples