157. [USACO Nov07] 奶牛跨栏
2017-04-18 22:03
176 查看
157.[USACONov07]奶牛跨栏
★★输入文件:hurdles.in输出文件:
hurdles.out简单对比
时间限制:1s内存限制:128MB
译byCmYkRgB123
描述
FarmerJohn想让她的奶牛准备郡级跳跃比赛,贝茜和她的伙伴们正在练习跨栏。她们很累,所以她们想消耗最少的能量来跨栏。
显然,对于一头奶牛跳过几个矮栏是很容易的,但是高栏却很难。于是,奶牛们总是关心路径上最高的栏的高度。
奶牛的训练场中有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。
输入样例
563 1212 328 135 253 344 248 34 12 51
输出样例
4 8 -1 思路:裸Flyoed注意在求最短路径的时候取一下最大值 错因:10001*10001的数组800M+
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #include<stack> usingnamespacestd; constintMAXN=1001; constintmaxn=0x7fffffff; longlongintmap[MAXN][MAXN]; intmain() { freopen("hurdles.in","r",stdin); freopen("hurdles.out","w",stdout); intn,m,q; scanf("%d%d%d",&n,&m,&q); for(inti=1;i<=n;i++) for(intj=1;j<=n;j++) map[i][j]=maxn; for(inti=1;i<=m;i++) { intx,y,z; scanf("%d%d%d",&x,&y,&z); map[x][y]=z; } for(intk=1;k<=n;k++) { for(inti=1;i<=n;i++) { for(intj=1;j<=n;j++) { if(map[i][k]!=maxn&&map[k][j]!=maxn) if((map[i][j]>map[i][k])&&(map[i][j]>map[k][j])) map[i][j]=max(map[i][k],map[k][j]); } } } for(inti=1;i<=q;i++) { intx,y; scanf("%d%d",&x,&y); if(map[x][y]!=maxn) printf("%lld\n",map[x][y]); else printf("-1"); } fclose(stdin); fclose(stdout); return0; }
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #include<stack> usingnamespacestd; constintMAXN=1001; constintmaxn=0x7fffffff; longlongintmap[MAXN][MAXN]; intmain() { freopen("hurdles.in","r",stdin); freopen("hurdles.out","w",stdout); intn,m,q; scanf("%d%d%d",&n,&m,&q); for(inti=1;i<=n;i++) for(intj=1;j<=n;j++) map[i][j]=maxn; for(inti=1;i<=m;i++) { intx,y,z; scanf("%d%d%d",&x,&y,&z); map[x][y]=z; } for(intk=1;k<=n;k++) { for(inti=1;i<=n;i++) { for(intj=1;j<=n;j++) { if(map[i][k]!=maxn&&map[k][j]!=maxn) if((map[i][j]>map[i][k])&&(map[i][j]>map[k][j])) map[i][j]=max(map[i][k],map[k][j]); } } } for(inti=1;i<=q;i++) { intx,y; scanf("%d%d",&x,&y); if(map[x][y]!=maxn) printf("%lld\n",map[x][y]); else printf("-1"); } fclose(stdin); fclose(stdout); return0; }
相关文章推荐
- 157. [USACO Nov07] 奶牛跨栏
- 157. [USACO Nov07] 奶牛跨栏
- cogs157. [USACO Nov07] 奶牛跨栏 x
- 157. [USACO Nov07] 奶牛跨栏
- 157. [USACO Nov07] 奶牛跨栏(第三次考试大整理)
- [BZOJ] 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏
- 【bzoj1641】 Usaco2007 Nov Cow Hurdles 奶牛跨栏 最短路
- bzoj 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏 floyd
- bzoj 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏(floyd)
- 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏
- 【BZOJ 1641】【Usaco2007 Nov】Cow Hurdles 奶牛跨栏(最短路变形)
- BZOJ 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏( floyd )
- 【USACO 2007 November Silver】Cow Hurdles奶牛跨栏
- [BZOJ1641][Usaco2007 Nov]Cow Hurdles 奶牛跨栏
- 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏
- 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏
- bzoj1641 [Usaco2007 Nov]Cow Hurdles 奶牛跨栏(Floyd)
- 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏
- 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏
- bzoj 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏【Floyd】