小明的烦恼——找路径 
Time Limit: 2000ms, Special Time Limit:5000ms, Memory Limit:32768KB
Total submit users: 45, Accepted users: 36
Problem 11545 : No special judgement
Problem description
  小明真的是个非常厉害的人,每当老师有什么事时。总是会找到小明,二小明也总能解决。所以老师决定给小明一个奖励。给他额外的假期。小明当然非常高兴。由于小明最终能够如愿的出去旅游了。小明旅游的第一站到了漂亮的长沙。到了长沙当然免不了要去參观古色古香的的湖南师范大学了。小明在师大校园里愉快的玩耍,不时瞅一眼从他身边经过的美女。也感叹这个校园古老建筑带给他的震撼。

临近中午了。小明走到了理学院大门前,瞬间就被吸引了,于是就走了进去。在理学院的一个教室外面。小明看到有个带眼睛的男生在皱眉头,好像是被什么难题卡住了。小明的慈悲之心油然而生,于是就走了进去。

于是题目就来了: 

有N个城市,有些城市有道路相连。但这些道路中间并没有加油站(每一个城市里面有加油站能够补给),如今有个project师要找到T条不同的路径从1号城市到N号城市。两条路径是不同的当且仅当不经过同样的边,如今告诉你project师的汽车的最大载油量C和经过每条道路所要消耗的油量,问你这个project师能不能完毕任务。

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
1 2 2
2 3 5
3 7 5
1 4 1
4 3 1
4 5 7
5 7 1
1 6 3
6 7 3
7 9 2 4
1 2 2
2 3 5
3 7 5
1 4 1
4 3 1
4 5 7
5 7 1
1 6 3
6 7 3
Sample Output
YES
NO
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--小明的烦恼——找路径的更多相关文章

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

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

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

    http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11545 只是要求不经过相同的边,那么每次找出一条增广路T-- ...

  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. 【贪心+堆】XMU 1584 小明的烦恼

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

  9. 小明历险记:规则引擎drools教程一

    小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看. 小明的烦恼 活动规则是根据用户购买订单的金 ...

随机推荐

  1. 关于Linux下安装Oracle

    参考文档:http://www.cnblogs.com/gaojun/archive/2012/11/22/2783257.html 中文字符集设置:    http://blog.csdn.net/ ...

  2. Delphi第三方控件安装卸载指南

    基本安装1.对于单个控件,Componet-->install component..-->PAS或DCU文件-->install; 2.对于带*.dpk文件的控件包,File--& ...

  3. Cookie测试的测试点

    1.禁止使用Cookie:设置浏览器禁止使用Cookie,访问网页后,检查存放Cookie文件中未生成相关文件: 2.Cookie寻出路径:按照操作系统和浏览器对Cookie存放路径的设置,检查存放路 ...

  4. 九度oj 题目1139:最大子矩阵

    题目描述: 已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵. 比如,如下4 * 4的矩阵 0 -2 -7 0 9 2 -6 2 -4 1 ...

  5. shell的case-esac

    case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构. case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令.case语句格式如下: ...

  6. 刷题总结——奇怪的游戏(scoi2012)

    题目: 题目描述 Blinker 最近喜欢上一个奇怪的游戏.这个游戏在一个 N*M  的棋盘上玩,每个格子有一个数.每次 Blinker  会选择两个相邻的格子,并使这两个数都加上 1.现在 Blin ...

  7. 【bzoj1299】[LLH邀请赛]巧克力棒 博弈+模拟

    Description TBL和X用巧克力棒玩游戏.每次一人可以从盒子里取出若干条巧克力棒,或是将一根取出的巧克力棒吃掉正整数长度.TBL先手两人轮流,无法操作的人输. 他们以最佳策略一共进行了10轮 ...

  8. bzoj[HNOI2015]亚瑟王 - 递推与动规 - 概率与期望

    [bzoj4008][HNOI2015]亚瑟王 2015年4月22日3,2991 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之 ...

  9. JSP表单提交中文乱码

    简要笔记:由于jsp默认表单提交编码方式是:ISO-8859-1,而我们需要的是utf-8或者是gbk码,故需要转化. 具体方法是:在表单处理文件中,将获取到的变量进行转换. String userN ...

  10. 「CodePlus 2018 3 月赛」白金元首与莫斯科

    $n \leq 17,m \leq 17$,$n*m$的01矩形,对每一个0问:当他单独变成1之后,在其他0处放多米诺牌(不一定放满,可以不放)的方案数.膜$1e9+7$. 直接$dp$是$n^42^ ...