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

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

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

邻接表:

 # include <cstdio>
# include <cstring>
# include <algorithm>
# include <iostream>
using namespace std; int list[],dis[],gap[],node;
int source,sink,Vs,inf = << ;
int N,M,T,C;
struct E
{
int to,c,next;
}edg[]; void addedg(int from,int to,int value)
{
edg[node].to = to,edg[node].c = value,edg[node].next = list[from],list[from] = node++;
edg[node].to = from,edg[node].c = ,edg[node].next = list[to],list[to] = node ++;
} int dfs(int src,int aug)
{
if(src == sink) return aug; int flow = ,mid_d = Vs-;
for(int j = list[src];j != -; j = edg[j].next)
if(edg[j].c)
{
if(dis[src] == dis[edg[j].to]+)
{
int t = dfs(edg[j].to,min(aug-flow,edg[j].c)); edg[j].c -= t;
edg[j^].c += t;
flow += t;
if(dis[source] >= Vs) return flow;
if(aug == flow) break;
}
mid_d = min(mid_d,dis[edg[j].to]);
}
if(!flow)
{
if(!(--gap[dis[src]])) dis[source] = Vs;
dis[src] = mid_d+;
++gap[dis[src]];
}
return flow;
} bool maxflow_sap(int src,int ed)
{
int ans = ;
memset(gap,,sizeof(gap));
memset(dis,,sizeof(dis));
gap[] = Vs = ed;
source = src, sink = ed; while(dis[source] < Vs)
{
//printf("%d %d\n",T,ans);
if(dfs(source,inf))
T--;
if(T<=) break;
}
if(T<=) return true;
return false; } int main()
{
//freopen("a.txt","r",stdin);
while(~scanf("%d%d%d%d",&N,&M,&T,&C))
{
int i,j;
node = ;
memset(list,-,sizeof(list));
for(i = ;i < M;i++)
{
int x,y,c;
scanf("%d%d%d",&x,&y,&c);
// printf("%d%d%d\n",x,y,c);
if(c<=C) addedg(x,y,c);
}
if(maxflow_sap(,N)) printf("YES\n");
else printf("NO\n");
}
return ;
}

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. React.js 简介

    React.js 是一个帮助你构建页面 UI 的库.如果你熟悉 MVC 概念的话,那么 React 的组件就相当于 MVC 里面的 View.如果你不熟悉也没关系,你可以简单地理解为,React.js ...

  2. Spring需要的几个关键配置文件(SSM框架整合)

    打包下载 springmvc-servlet.xml <?xml version="1.0" encoding="UTF-8"?> <bean ...

  3. oracle数据库常用的99条查询语句

    1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 fro ...

  4. CF919D Substring

    思路: 拓扑排序过程中dp.若图有环,返回-1. 实现: #include <bits/stdc++.h> using namespace std; ; vector<int> ...

  5. 块级元素的text-align对行内元素和果冻元素(inline-block)的作用

    块级元素社设置了text-align:center以后,对其直接行内元素/果冻元素.继承行内元素/果冻元素都会产生“居中效应”. <style> .test4{ text-align: c ...

  6. 学习笔记 第十章 使用CSS美化表单

    第10章   使用CSS美化表单 [学习重点] 正确使用各种表单控件 熟悉HTML5新增的表单控件 掌握表单属性的设置 设计易用性表单页面 10.1  表单的基本结构 表单包含多个标签,由很多控件组成 ...

  7. Windows下使用JMeter

    简介 Apache JMeter是100%纯java桌面应用程序,被设计用来测试C/S结构的软件(例如web应用程序).它可以被用来测试包括基于静态和动态资源程序的性能,例如静态文件,Java Ser ...

  8. eclipse 升级note

    参考http://www.cnblogs.com/jiqingwu/archive/2013/05/26/eclipse_plugins_import.html. 最终决定采用 启动 eclipse. ...

  9. [转载]迅为4418开发板Qt移植移动4G模块第一部分

        本文转自迅为论坛:http://topeetboard.com   平台:iTOP-4418开发板   1.首先要配置内核,这个一步和Android系统移植3G或者4G模块是一样的.一般模块的 ...

  10. CAD参数绘制圆(com接口)

    CAD绘制图像的过程中,画圆的情况是非常常见的,用户可以设置圆的圆心位置及半径属性. 主要用到函数说明: _DMxDrawX::DrawCircle 绘制一个圆.详细说明如下: 参数 说明 DOUBL ...