hunnu--11545--小明的烦恼——找路径
| 小明的烦恼——找路径 |
| Time Limit: 2000ms, Special Time Limit:5000ms, Memory Limit:32768KB |
| Total submit users: 45, Accepted users: 36 |
| Problem 11545 : No special judgement |
| Problem description |
| 小明真的是个非常厉害的人,每当老师有什么事时。总是会找到小明,二小明也总能解决。所以老师决定给小明一个奖励。给他额外的假期。小明当然非常高兴。由于小明最终能够如愿的出去旅游了。小明旅游的第一站到了漂亮的长沙。到了长沙当然免不了要去參观古色古香的的湖南师范大学了。小明在师大校园里愉快的玩耍,不时瞅一眼从他身边经过的美女。也感叹这个校园古老建筑带给他的震撼。
临近中午了。小明走到了理学院大门前,瞬间就被吸引了,于是就走了进去。在理学院的一个教室外面。小明看到有个带眼睛的男生在皱眉头,好像是被什么难题卡住了。小明的慈悲之心油然而生,于是就走了进去。 于是题目就来了: |
| Input |
| 由多组case: 每组case第一行有4个整数N,M。T,C,N<=200;C<=1000000; 然后有M行。每一行有3个整数,a,b。c,代表从a城市到b城市须要c的油量。 c<=1000000;假设两个城市之间有多条边。则视为不同的边。 |
| Output |
| 对于每一个case: 假设project师可以完毕任务,输出YES,不然输出NO。 |
| Sample Input |
7 9 2 5 |
| Sample Output |
YES |
| Problem Source |
| HUNNU contest |
题意:问能否找到t条从1到n的路径。每条不能有不论什么重叠,每小段路径能够走的条件是耗油量不大于c
解析:网络流水水就能飘过
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#define MAX(a,b) a>b?a:b
#define MIN(a,b) a<b?a:b
#define Max 1000000000
using namespace std;
int n,m,t,c,map[222][222];
int v[222],f[222],dis[222];
int EK()
{
int i,j,k,l,cur,sum,mm,flag,num=0;
while(true)
{
queue<int> q;
memset(v,0,sizeof(v));//用来记录每次从1找到n的过程中每一个点是否被訪问
memset(f,0,sizeof(f));//记录1到n的路径
q.push(1);
dis[1]=1<<30;
flag=0;
while(q.size())//直接广搜找一条从1到n的路径
{
cur=q.front();
q.pop();
for(i=2;i<=n;i++)
if(!v[i]&&map[cur][i]<=c)//推断是否已经訪问过,耗油量是否同意通过
{
v[i]=1;
q.push(i);
f[i]=cur;//记录路径
if(i==n){flag=1;break;}//假设找到了就标记并退出广搜
}
}
if(!flag||num>=t)break;//假设没有找到从1到n的路径(即增广路)或者找到的路径数已经有了t条了。跳出循环
num++;//找到路径数加一
for(i=n;i!=1;i=f[i])//操作找到的这条路径
{
map[i][f[i]]=map[f[i]][i];//残余网络,给予网络流回流的机会(这里不能省。不要由于输入是双向就省略。当这段路径是回流路径的时候,它的反方向的值是max)
map[f[i]][i]=Max;//正向初始化为max,表示已经被走过了,由于c再大也不会大于max
}
}
if(num>=t)puts("YES");
else puts("NO");
}
int main(void)
{
int i,j,k,l;
while(~scanf("%d%d%d%d",&n,&m,&t,&c))
{
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
map[i][j]=Max;//各路段初始化为max,这样c再大也过不去
}
for(i=0;i<m;i++)
{
scanf("%d%d%d",&j,&k,&l);
map[j][k]=l;//无向图建图
map[k][j]=l;
}
EK();
}
return 0;
}
hunnu--11545--小明的烦恼——找路径的更多相关文章
- hunnu 11545小明的烦恼——找路径 (最大流)
小明的烦恼--找路径 Time Limit: 2000ms, Special Time Limit:5000ms, Memory Limit:32768KB Total submit users: ...
- hunnu - 11545 小明的烦恼——找路径 (最大流)
http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11545 只是要求不经过相同的边,那么每次找出一条增广路T-- ...
- hunnu 小明的烦恼——找字符串
http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11544&courseid=0 小明的烦恼——找字符串 ...
- hunnu11544:小明的烦恼——找字符串
Problem description 小明是个非常优秀的同学.他除了特别公正外,他也非常细心,当然老师肯定也知道,这不,老师又有事情找他帮忙了.老师每周都会给他一个字符串A.然后问小明" ...
- hnuun 11544 小明的烦恼——找字符串(求环形字符串的最小最大字典序)
http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11544&courseid=0 最小最大表示法: 求环 ...
- hunnu11543:小明的烦恼——分糖果
Problem description 小明在班里一直是个非常公正的孩子.这点同学和老师都非常清楚,这不,老师每周都会从家里带来一些糖果.然后叫小明把糖果分给其它小朋友,但这个班里的同学都有一个非 ...
- 擅长排列的小明 II(找规律)
擅长排列的小明 II 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 小明十分聪明,而且十分擅长排列计算. 有一天小明心血来潮想考考你,他给了你一个正整数n,序列1,2, ...
- 【贪心+堆】XMU 1584 小明的烦恼
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1584 题目大意: 给n(n<=100 000)个任务的耗时和截至时间,问最少不能 ...
- 小明历险记:规则引擎drools教程一
小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看. 小明的烦恼 活动规则是根据用户购买订单的金 ...
随机推荐
- Android开发工具——Gradle知识汇总
1.什么是构建工具 Eclipse大家都知道是一种IDE(集成开发环境),最初是用来做Java开发的,而Android是基于Java语言的,所以最初Google还是希望Android能在Eclipse ...
- wei UI使用
1.前言 通过前面系列文章的学习与讲解,相信大家已经对微信的开发有了一个全新的认识.后端基本能够基于盛派的第三方sdk搞定大部分事宜,剩下的就是前端了.关于手机端的浏览器的兼容性问题相信一直是开发者们 ...
- 在 Yii2 项目中使用 Composer 添加 FontAwesome 字体资源
2014-06-21 19:05 原文 简体 繁體 2,123 次围观 前天帮同事改个十年前的网站 bug,页面上一堆 include require 不禁让人抱头痛哭.看到 V2EX 上的讨论说,写 ...
- ubuntu ssh连接服务器保持长时间不断
方法: ssh -o serveraliveinterval=60 username@ip
- 【Luogu】P1280尼克的任务(DP)
做顺序DP做惯了,死活没想到这是个倒序DP. f[i]表示时刻i的最大空闲时.有以下两种可能. 1.时刻i没有任务.此时f[i]=f[i+1]+1; 2.时刻i有许多任务.此时f[i]=max(f[i ...
- BZOJ 3925 [Zjoi2015]地震后的幻想乡 ——期望DP
我们只需要考虑$\sum F(x)P(x)$的和, $F(x)$表示第x大边的期望,$P(x)$表示最大为x的概率. 经过一番化简得到$ans=\frac{\sum T(x-1)}{m+1}$ 所以就 ...
- BZOJ 3831: [Poi2014]Little Bird【动态规划】
Description In the Byteotian Line Forest there are trees in a row. On top of the first one, there ...
- BZOJ3572 [Hnoi2014]世界树 【虚树 + 树形dp】
题目 世界树是一棵无比巨大的树,它伸出的枝干构成了整个世界.在这里,生存着各种各样的种族和生灵,他们共同信奉着绝对公正公平的女神艾莉森,在他们的信条里,公平是使世界树能够生生不息.持续运转的根本基石. ...
- 【NOI Linux】复习一波命令行
$linux$ 终端真是用不惯. 假设 a 是一个可执行文件( $linux$ 下的可执行文件没有后缀 ) 1. size a 计算一个程序的静态内存(全局数组变量.栈空间.堆空间等),单位是字节.除 ...
- Linux(12):期中架构(4)--- 前端部分:HTTP & Nginx & LNMP架构
HTTP协议概念原理说明 1. 当用户访问一个网站时经历的过程 # ①. 利用DNS服务,将输入的域名解析为相应的IP地址 a 本地主机输入域名后,会查询本地缓存信息和本地hosts b 本地主机会向 ...