157. [USACO Nov07] 奶牛跨栏

★★   输入文件:hurdles.in   输出文件:hurdles.out   简单对比
时间限制:1 s   内存限制:128 MB

译 by CmYkRgB123

描述

Farmer John 想让她的奶牛准备郡级跳跃比赛,贝茜和她的伙伴们正在练习跨栏。她们很累,所以她们想消耗最少的能量来跨栏。

显然,对于一头奶牛跳过几个矮栏是很容易的,但是高栏却很难。于是,奶牛们总是关心路径上最高的栏的高度。

奶牛的训练场中有 N (1 ≤ N ≤ 300) 个站台,分别标记为1..N。所有站台之间有M (1 ≤ M ≤ 25,000)条单向路径,第i条路经是从站台Si开始,到站台Ei,其中最高的栏的高度为Hi (1 ≤ Hi ≤ 1,000,000)。无论如何跑,奶牛们都要跨栏。

奶牛们有 T (1 ≤ T ≤ 40,000) 个训练任务要完成。第 i 个任务包含两个数字 Ai 和 Bi (1 ≤ Ai ≤ N; 1 ≤ Bi ≤ N),表示奶牛必须从站台Ai跑到站台Bi,可以路过别的站台。奶牛们想找一条路径从站台Ai到站台Bi,使路径上最高的栏的高度最小。

你的任务就是写一个程序,计算出路径上最高的栏的高度的最小值。

输入

  • 行 1: 两个整数 N, M, T
  • 行 2..M+1: 行 i+1 包含三个整数 Si , Ei , Hi
  • 行 M+2..M+T+1: 行 i+M+1 包含两个整数,表示任务i的起始站台和目标站台: Ai , Bi

输出

  • 行 1..T: 行 i 为一个整数,表示任务i路径上最高的栏的高度的最小值。如果无法到达,输出 -1。

输入样例

5 6 3
1 2 12
3 2 8
1 3 5
2 5 3
3 4 4
2 4 8
3 4
1 2
5 1

输出样例

4
8
-1

思路:裸Flyoed  注意在求最短路径的时候取一下最大值错因: 10001*10001的数组 800M+
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<cmath>
 6 #include<queue>
 7 #include<stack>
 8 using namespace std;
 9 const int MAXN=1001;
10 const int maxn=0x7fffffff;
11 long long int map[MAXN][MAXN];
12 int main()
13 {
14     freopen("hurdles.in","r",stdin);
15     freopen("hurdles.out","w",stdout);
16     int n,m,q;
17     scanf("%d%d%d",&n,&m,&q);
18     for(int i=1;i<=n;i++)
19         for(int j=1;j<=n;j++)
20             map[i][j]=maxn;
21     for(int i=1;i<=m;i++)
22     {
23         int x,y,z;
24         scanf("%d%d%d",&x,&y,&z);
25         map[x][y]=z;
26     }
27     for(int k=1;k<=n;k++)
28     {
29         for(int i=1;i<=n;i++)
30         {
31             for(int j=1;j<=n;j++)
32             {
33                 if(map[i][k]!=maxn&&map[k][j]!=maxn)
34                 if((map[i][j]>map[i][k])&&(map[i][j]>map[k][j]))
35                 map[i][j]=max(map[i][k],map[k][j]);
36             }
37         }
38     }
39     for(int i=1;i<=q;i++)
40     {
41         int x,y;
42         scanf("%d%d",&x,&y);
43         if(map[x][y]!=maxn)
44         printf("%lld\n",map[x][y]);
45         else
46         printf("-1");
47     }
48     fclose(stdin);
49     fclose(stdout);
50     return 0;
51 }

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<cmath>
 6 #include<queue>
 7 #include<stack>
 8 using namespace std;
 9 const int MAXN=1001;
10 const int maxn=0x7fffffff;
11 long long int map[MAXN][MAXN];
12 int main()
13 {
14     freopen("hurdles.in","r",stdin);
15     freopen("hurdles.out","w",stdout);
16     int n,m,q;
17     scanf("%d%d%d",&n,&m,&q);
18     for(int i=1;i<=n;i++)
19         for(int j=1;j<=n;j++)
20             map[i][j]=maxn;
21     for(int i=1;i<=m;i++)
22     {
23         int x,y,z;
24         scanf("%d%d%d",&x,&y,&z);
25         map[x][y]=z;
26     }
27     for(int k=1;k<=n;k++)
28     {
29         for(int i=1;i<=n;i++)
30         {
31             for(int j=1;j<=n;j++)
32             {
33                 if(map[i][k]!=maxn&&map[k][j]!=maxn)
34                 if((map[i][j]>map[i][k])&&(map[i][j]>map[k][j]))
35                 map[i][j]=max(map[i][k],map[k][j]);
36             }
37         }
38     }
39     for(int i=1;i<=q;i++)
40     {
41         int x,y;
42         scanf("%d%d",&x,&y);
43         if(map[x][y]!=maxn)
44         printf("%lld\n",map[x][y]);
45         else
46         printf("-1");
47     }
48     fclose(stdin);
49     fclose(stdout);
50     return 0;
51 }

 

157. [USACO Nov07] 奶牛跨栏相关推荐

  1. 堆+贪心——nkoj1587【Usaco Nov07 Gold】分配防晒霜

    [Usaco Nov07 Gold]分配防晒霜 Description 奶牛们计划着去海滩上享受日光浴.为了避免皮肤被阳光灼伤,所有C(1 <= C <= 2500)头奶牛必须在出门之前在 ...

  2. bzoj 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏(floyd)

    1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 715  Solved: 47 ...

  3. ACM 131. [USACO Mar08] 奶牛渡河(线性dp)

    131. [USACO Mar08] 奶牛渡河 ★☆   输入文件: cowriver.in   输出文件: cowriver.out    简单对比 时间限制:1 s   内存限制:128 MB F ...

  4. 奶牛跨栏--最短路径--佛洛依德算法

    标题: 奶牛跨栏 标签: 图结构 最短路 详情: Farmer John 想让她的奶牛准备郡级跳跃比赛,贝茜和她的伙伴们正在练习跨栏.她们很累,所以她们想消耗最少的能量来跨栏. 显然,对于一头奶牛跳过 ...

  5. 【USACO】奶牛抗议 树状数组+dp

    题目描述 约翰家的 N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在第 i 位的奶牛 的理智度为 A i ,数字可正可负. 约翰希望奶牛在抗议时保持理性,为此,他打算将这条队伍分割成几 ...

  6. 186. [USACO Oct08] 牧场旅行

    157. [USACO Nov07] 奶牛跨栏 186. [USACO Oct08] 牧场旅行 ★★ 输入文件:pwalk.in 输出文件:pwalk.out 简单对比时间限制:1 s 内存限制:12 ...

  7. F. [usaco 2009 dec]游荡的奶牛 总结

    F. [usaco 2009 dec]游荡的奶牛 总结 题目 F. [usaco 2009 dec]游荡的奶牛 时间限制:1s 空间限制:256MB 输入文件:sgraze-in 输出文件:sgraz ...

  8. [USACO Mar08] 游荡的奶牛

    [USACO Mar08] 游荡的奶牛 时间限制:1 s 内存限制:128 MB 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游 ...

  9. ACM 130. [USACO Mar08] 游荡的奶牛(dp+BFS)

    130. [USACO Mar08] 游荡的奶牛 ★☆   输入文件:ctravel.in   输出文件:ctravel.out   简单对比 时间限制:1 s   内存限制:128 MB 奶牛们在被 ...

最新文章

  1. android Run模式也会出现Waiting for debugger的解决方法
  2. Android下 scrollview的滚动停止事件的监听方法
  3. Linux多线程——异步
  4. CUMCM之2006B:2006之B题: 艾滋病疗法的评价及疗效的预测
  5. 微软一站式示例脚本库 — IT专业人士的省时利器
  6. Swoole源代码学习记录(十五)——Timer模块分析
  7. 再见了 React、Angular,Vue3 才是 yyds
  8. ios 滑动手势事件 与cell touchevent事件_深入浅出~手势操作原理分析
  9. python中大于0的元素全部转化为1,小于0的元素全部转化为0的代码
  10. java中数据类型及运算符的注意事项
  11. 74ls161中rco是什么_催化燃烧RCO设备多少钱?为什么价格差别如此之大?
  12. 【资源下载】netassist 下载 资源下载
  13. 年终盘点丨2021边缘计算大事记
  14. 八、图像金字塔(高斯金字塔、拉普拉斯金字塔)
  15. SQLite崩溃处理
  16. sqlalchemy的基本操作大全
  17. 苹果关掉200m限制_苹果怎么取消200m限制
  18. 自然语言处理 | (4)英文文本处理与NLTK
  19. 什么是RST包,什么是三次握手,什么是四次握手 ---请进
  20. Python之九宫格输入

热门文章

  1. 第5章 MySQL高可用架构设计
  2. Mongodb存储特性与内部原理
  3. php老鸟,老鸟谈PHP数组排序
  4. G1垃圾收集器之对象分配过程
  5. 使用jQuery来实现一个简单的ajax请求
  6. 关于CSS中定位的个人理解
  7. [转] 2018年冬流感通知
  8. windows下git bash中文乱码解决办法
  9. jsp连接mysql----------第一篇技术类文章
  10. Ajax进入ERROR的部分条件总结