157. [USACO Nov07] 奶牛跨栏(第三次考试大整理)

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

思路

此题是真的很水,就是裸的Floyd 

但是需要注意的是:

需要在求最短路径的时候取一下最大值!

    min(max(i-k,k-j),i-j);

这道题考试的时候连看都没看,,因为选做三个,这是最后一个,所以说一定要规划好做什么题做哪些题,自己擅长什么就先做什么,先把大致的题目看一下,然后再做,吃亏了。。。。

考试后打的代码(floyd):

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

 

posted @ 2017-04-18 22:38  夜雨声不烦  阅读(140)  评论(0编辑  收藏  举报