http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11545

只是要求不经过相同的边,那么每次找出一条增广路T--,判断T<=0即可.

在加边的时候注意要c<=C的时候才需要加边.

邻接表:

  1. # include <cstdio>
  2. # include <cstring>
  3. # include <algorithm>
  4. # include <iostream>
  5. using namespace std;
  6.  
  7. int list[],dis[],gap[],node;
  8. int source,sink,Vs,inf = << ;
  9. int N,M,T,C;
  10. struct E
  11. {
  12. int to,c,next;
  13. }edg[];
  14.  
  15. void addedg(int from,int to,int value)
  16. {
  17. edg[node].to = to,edg[node].c = value,edg[node].next = list[from],list[from] = node++;
  18. edg[node].to = from,edg[node].c = ,edg[node].next = list[to],list[to] = node ++;
  19. }
  20.  
  21. int dfs(int src,int aug)
  22. {
  23. if(src == sink) return aug;
  24.  
  25. int flow = ,mid_d = Vs-;
  26. for(int j = list[src];j != -; j = edg[j].next)
  27. if(edg[j].c)
  28. {
  29. if(dis[src] == dis[edg[j].to]+)
  30. {
  31. int t = dfs(edg[j].to,min(aug-flow,edg[j].c));
  32.  
  33. edg[j].c -= t;
  34. edg[j^].c += t;
  35. flow += t;
  36. if(dis[source] >= Vs) return flow;
  37. if(aug == flow) break;
  38. }
  39. mid_d = min(mid_d,dis[edg[j].to]);
  40. }
  41. if(!flow)
  42. {
  43. if(!(--gap[dis[src]])) dis[source] = Vs;
  44. dis[src] = mid_d+;
  45. ++gap[dis[src]];
  46. }
  47. return flow;
  48. }
  49.  
  50. bool maxflow_sap(int src,int ed)
  51. {
  52. int ans = ;
  53. memset(gap,,sizeof(gap));
  54. memset(dis,,sizeof(dis));
  55. gap[] = Vs = ed;
  56. source = src, sink = ed;
  57.  
  58. while(dis[source] < Vs)
  59. {
  60. //printf("%d %d\n",T,ans);
  61. if(dfs(source,inf))
  62. T--;
  63. if(T<=) break;
  64. }
  65. if(T<=) return true;
  66. return false;
  67.  
  68. }
  69.  
  70. int main()
  71. {
  72. //freopen("a.txt","r",stdin);
  73. while(~scanf("%d%d%d%d",&N,&M,&T,&C))
  74. {
  75. int i,j;
  76. node = ;
  77. memset(list,-,sizeof(list));
  78. for(i = ;i < M;i++)
  79. {
  80. int x,y,c;
  81. scanf("%d%d%d",&x,&y,&c);
  82. // printf("%d%d%d\n",x,y,c);
  83. if(c<=C) addedg(x,y,c);
  84. }
  85. if(maxflow_sap(,N)) printf("YES\n");
  86. else printf("NO\n");
  87. }
  88. return ;
  89. }

hunnu - 11545 小明的烦恼——找路径 (最大流)的更多相关文章

  1. hunnu 11545小明的烦恼——找路径 (最大流)

    小明的烦恼--找路径  Time Limit: 2000ms, Special Time Limit:5000ms, Memory Limit:32768KB Total submit users: ...

  2. hunnu--11545--小明的烦恼——找路径

    小明的烦恼--找路径  Time Limit: 2000ms, Special Time Limit:5000ms, Memory Limit:32768KB Total submit users:  ...

  3. hunnu 小明的烦恼——找字符串

    http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11544&courseid=0 小明的烦恼——找字符串 ...

  4. hunnu11544:小明的烦恼——找字符串

    Problem description   小明是个非常优秀的同学.他除了特别公正外,他也非常细心,当然老师肯定也知道,这不,老师又有事情找他帮忙了.老师每周都会给他一个字符串A.然后问小明" ...

  5. hnuun 11544 小明的烦恼——找字符串(求环形字符串的最小最大字典序)

    http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11544&courseid=0 最小最大表示法: 求环 ...

  6. hunnu11543:小明的烦恼——分糖果

    Problem description   小明在班里一直是个非常公正的孩子.这点同学和老师都非常清楚,这不,老师每周都会从家里带来一些糖果.然后叫小明把糖果分给其它小朋友,但这个班里的同学都有一个非 ...

  7. 擅长排列的小明 II(找规律)

    擅长排列的小明 II 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 小明十分聪明,而且十分擅长排列计算. 有一天小明心血来潮想考考你,他给了你一个正整数n,序列1,2, ...

  8. 【BZOJ3280】小R的烦恼 最小费用最大流

    [BZOJ3280]小R的烦恼 Description 小R最近遇上了大麻烦,他的程序设计挂科了.于是他只好找程设老师求情.善良的程设老师答应不挂他,但是要求小R帮助他一起解决一个难题. 问题是这样的 ...

  9. 【贪心+堆】XMU 1584 小明的烦恼

    题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1584 题目大意: 给n(n<=100 000)个任务的耗时和截至时间,问最少不能 ...

随机推荐

  1. 关于如何读取XML文件的一个简单方法

    在平时开发系统功能的时候,我们经常会碰到一些需求需要经常性的发生变化,比如 系统版本.更新日志 等等.这个时候用一个XML文件来替代数据库,就会变的简便很多. 前段时候我也正好需要改个需求,是关于客户 ...

  2. P1478 陶陶摘苹果(升级版)

    题目描述 又是一年秋季时,陶陶家的苹果树结了n个果子.陶陶又跑去摘苹果,这次她有一个a公分的椅子.当他手够不着时,他会站到椅子上再试试. 这次与NOIp2005普及组第一题不同的是:陶陶之前搬凳子,力 ...

  3. 最新最强短视频SDK——来自RDSDK.COM

    北京锐动天地信息技术有限公司成立于2007年9月.多年来一直专注于音视频领域核心技术的研发, 拥有Windows.iOS.Android全平台自主知识产权的领先技术产品. 2011年获得新浪战略投资, ...

  4. [备忘]Notification的实用

    Intent resultIntent = null; if (!TextUtils.isEmpty(tid)){ resultIntent = new Intent("com.shijie ...

  5. 网页制作常用的CSS知识

    在制作网页中,我们会用到很多CSS的知识,在这里我简单的总结了一些. div    划分区块 ul,li 无序列表(配合划分区块) ol,li 有序列表 a 超链接标签 p 段落标签 h 标题标签 i ...

  6. leetcode_1014. Capacity To Ship Packages Within D Days

    https://leetcode.com/problems/capacity-to-ship-packages-within-d-days/ 传送带要在D天内把所有货物传送完,但是传送带每天有传送容量 ...

  7. 導出Excel方法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  8. Js 之图片懒加载插件

    一.PC端(lazyload) 1.引入js文件 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.m ...

  9. VC++线程函数内怎么调用外部函数

    VC++线程函数内怎么调用外部函数 1.把外部函数做成静态函数,就可以直接调用了.2.把外部函数所在的对象通过线程函数参数传到线程里面来,这样线程里可以使用此对象及其函数了.

  10. hibernate5.3版本出现hibernate中The server time zone value“乱码”问题的解决办法。

    <!-- 配置关于数据库连接的四个项 driverClass url username password --> <property name="hibernate.con ...