POJ 2253 Frogger【最短路径变形-要连通】
2014-07-24 17:41
423 查看
题目:http://poj.org/problem?id=2253
题意:青蛙从A处到B处有多条路,求最短路
如 A -> B 那么如果A经过CD到B的路比直接到B短,那么选这条路
↓ ↑ 然后因为是青蛙跳,所以最少跳的长度为A到C,C到D,D到B中最大的
C -> D 不然会掉水
这里用Floyd算法,还有Dijkstra等其他解法,见百度:最短路径
题意:青蛙从A处到B处有多条路,求最短路
如 A -> B 那么如果A经过CD到B的路比直接到B短,那么选这条路
↓ ↑ 然后因为是青蛙跳,所以最少跳的长度为A到C,C到D,D到B中最大的
C -> D 不然会掉水
这里用Floyd算法,还有Dijkstra等其他解法,见百度:最短路径
#include<stdio.h> #include<math.h> #define Max 100000 struct zuobiao { int x,y; }map[201]; double min(double x,double y) { return x<y?x:y; } double max(double x,double y) { return x>y?x:y; } int main() { int n,i,j,k,time=0; double d,Floyd[201][201]; while(scanf("%d",&n)!=EOF && n) { time++; for(i=1;i<=n;i++) scanf("%d%d",&map[i].x,&map[i].y); for(i=1;i<=n;i++) { Floyd[i][i]=0; for(j=1;j<=n;j++) Floyd[i][j]=Max; //先设原路径为无穷远 } for(i=1;i<=n;i++) for(j=1;j<=n;j++) { d = sqrt ( ( map[i].x-map[j].x ) * ( map[i].x-map[j].x ) + (map[i].y-map[j].y) * (map[i].y-map[j].y) ); Floyd[i][j]=d; Floyd[j][i]=d; } for(k=1;k<=n;k++) //k为第三点 for(i=1;i<=n;i++) for(j=1;j<=n;j++) Floyd[i][j] = min ( max(Floyd[i][k],Floyd[k][j]), Floyd[i][j] ); printf("Scenario #%d\n",time); printf("Frog Distance = %.3f\n\n",Floyd[1][2]); } //POJ输出double用%f } //当边ik,kj的权值都小于ij时,则走i->k->j路线,否则走i->j路线 //当走i->k->j路线时,选择max{ik,kj},只有选择最大跳才能保证连通
相关文章推荐
- POJ 2253 Frogger(最短路径Dijkstra的变形)
- [ACM] POJ 2253 Frogger (最短路径变形,每条通路中的最长边的最小值)
- [ACM] POJ 2253 Frogger (最短路径变形,每条通路中的最长边的最小值)
- poj 2253 Frogger 最短路径变形(两种方法)
- POJ 2253 Frogger(Dijkstra变形——最短路径最大权值)
- 最短路径?青蛙(Frogger), ZOJ1942, POJ2253
- POJ2253 青蛙泡妞(单源最短路径变形)
- poj 2253 Frogger (最短路径)
- POJ-2253-最短路径变形-java语言描述
- poj 2253 Frogger(求最短路径中最大边)
- 初级->图算法->最短路径 poj 2253 Frogger
- POJ 2253 Frogger(最短路径Dijkstra算法和floyd算法)
- POJ 2253 最短路径变形
- POJ 2253 Frogger 最短路径 Floyed-Warshall算法
- POJ 2253 Frogger (求每条路径中最大值的最小值,Dijkstra变形)
- (POJ 2253)Frogger 求所有可达路径中的最大边的最小值 dijkstra || floyd 变形
- POJ 2253 Frogger (求每条路径中最大值的最小值,Dijkstra变形)
- POJ 2253 Frogger【最短路变形——路径上最小的最大权】
- POJ 2253 Frogger (求每条路径中最大值的最小值,Dijkstra变形)
- POJ 2253 Frogger【最短路变形——路径上最小的最大权】