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. JS格式化工具(转)

    <html> <head> <title>JS格式化工具 </title> <meta http-equiv="content-type ...

  2. SQL——连接查询、聚合函数、开窗函数、分组功能、联合查询、子查询

    连接查询 inner join,用的最多,表示多张表一一对应 聚合函数 操作行数据,进行合并 sum.avg.count.max.min 开窗函数 将合并的数据分布到原表的每一行,相当于多出来了一列, ...

  3. Node.js——路径问题

    相对路径问题:读取文件,形如 ./ 或者 ../  一般认为这个点是相对于这个 js 文件的文件夹路径,实际上不是,这个点相对于node命令时的当前路径,不同 js 文件下进行 ./  这样的引入是不 ...

  4. 洛谷 P2801 教主的魔法

    题目描述 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.…….N. 每个人的身高一开始都是 ...

  5. java调用jacob生成pdf,word,excel横向

    /* * 传进一个office文件的byte[]以及后缀,生成一个pdf文件的byte[] */ public byte[] jacob_Office2Pdf(byte[] srcFileBytes, ...

  6. springMVC返回Base64位编码图片验证码

    import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;impor ...

  7. Flutter web环境变量搭建及开发

    使用flutter开发app已有三个月,有一些行为形成了惯性,在搭建flutter web环境变量时走了不少的坑,分享出来,免得其他小伙伴再走一遍. 首先flutter的版本要使用1.5及以上版本 d ...

  8. 小b和矩阵

    2486 小b和矩阵 2 秒 262,144 KB 5 分 1 级题   小b有一个m行n列的矩阵. 她会从(1,1)开始,顺时针螺旋访问该矩阵,每个元素恰好被访问一次. 请你按小b的访问顺序输出每个 ...

  9. Axis1.4框架 实现webservice服务器和客户端

    一:软件环境 win7旗舰版, Eclipse,JDK1.6,tomcat6.0,Axis1.4的包. 至于Axis1.4包网上可以下载,如果是在找不到可以留言给我. 二:摘要 将解压后的 axis- ...

  10. mitmproxy 数据抓包

    1.安装环境: 基于python windows操作系统需要安装Microsoft Visual C++ V14.0以上 linux操作系统则直接基于python安装即可 2.安装mitmproxy ...