POJ 2253 Frogger【最短路径变形-要连通】
来源:互联网 发布:linux c debug 编辑:程序博客网 时间:2024/05/20 10:53
题目:http://poj.org/problem?id=2253
题意:青蛙从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 100000struct 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},只有选择最大跳才能保证连通
0 0
- POJ 2253 Frogger【最短路径变形-要连通】
- POJ 2253 Frogger(Dijkstra变形——最短路径最大权值)
- poj 2253 Frogger 最短路径变形(两种方法)
- POJ 2253 最短路径变形
- [ACM] POJ 2253 Frogger (最短路径变形,每条通路中的最长边的最小值)
- 初级->图算法->最短路径 poj 2253 Frogger
- POJ 2253 Frogger 最短路径 Floyed-Warshall算法
- Frogger最短路径
- 最短路变形 POJ 2253 Frogger
- POJ 2253 Frogger -- 最短路变形
- POJ 2253 Frogger(最短路--floyd变形)
- POJ 2253 Frogger(最短路变形)
- POJ -- 2253 -- Frogger (最短路变形)
- POJ 2253 Frogger【最短路变形——路径上最小的最大权】
- POJ-2253-最短路径变形-java语言描述
- 变形的最短路径 POJ 3621
- poj 1860 最短路径变形
- POJ2253 Frogger(最短路径)
- 用rsync命令和scp命令实现本机带进度条提示拷贝
- 乡村版《小时代3》 转自豆瓣
- Linux网络编程之TCP编程
- Android资料库
- baidu李明远:智能安康办理从概念变为实践我有话说
- POJ 2253 Frogger【最短路径变形-要连通】
- C语言如何产生随机数
- PATH, JAVA_HOME等等的作用
- Twitter Storm源代码分析之DRPC架构细节
- 进程间通讯方式笔记
- struts2返回到JSP页面的html字符串如何在JSP页面上解析成html标签 (ognl表达式)
- CSS3 Gradient
- scp的prompt为啥隐藏不掉
- 女子支持父亲与丈夫一起变性 三人成闺密