POJ 2253 Frogger(最短路 Floyd)
来源:互联网 发布:蛙式跳水 知乎 编辑:程序博客网 时间:2024/05/22 11:15
Frogger
大意:
给出两个青蛙的坐标和其他n-2个石头的坐标,任一两个坐标点间都是双向连通的。现在要求求出所有通路的最大距离,并把这些最大距离作比较,把最小的一个最大距离作为青蛙的最小跳远距离。
思路:
先求出两两之间的最短距离,再求出每个点开始的最长路,在这些最长路中求出那个最小的。
输出用printf怎么着都不过,直接用cout了。。。
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>#include <math.h>#include <iomanip>#define INF 0x3f3f3f3fusing namespace std;double x[210], y[210];double Map[210][210];void Solve(){ int cnt = 1; int n; while(~scanf("%d", &n) && n) { for(int i = 1; i <= n; i++) { scanf("%lf%lf", &x[i], &y[i]); } for(int i = 1; i <= n-1; i++) { for(int j = i+1; j <= n; j++) { double x2 = x[i]-x[j]; double y2 = y[i]-y[j]; Map[i][j] = Map[j][i] = sqrt(x2*x2+y2*y2); } } for(int k = 1; k <= n; k++) { for(int i = 1; i <= n-1; i++) { for(int j = i+1; j <= n; j++) { if(Map[i][k] < Map[i][j] && Map[k][j] < Map[i][j]) { if(Map[i][k] < Map[k][j]) { Map[i][j] = Map[j][i] = Map[k][j]; } else { Map[i][j] = Map[j][i] = Map[i][k]; } } } } } /*printf("Scenario #1%d\n", cnt++); printf("Frog Distance = %.3f\n", Map[1][2]);*/ cout<<"Scenario #"<<cnt++<<endl; cout<<fixed<<setprecision(3)<<"Frog Distance = "<<Map[1][2]<<endl<<endl; }}int main(){ Solve(); return 0;}
0 0
- poj 2253 Frogger (最短路Floyd)
- POJ 2253 Frogger(最短路 Floyd)
- POJ 2253 Frogger最短路(floyd)
- POJ 2253Frogger(最短路floyd)
- POJ 2253 Frogger(最短路--floyd变形)
- 文章标题 POJ 2253 : Frogger(最短路--Floyd)
- POJ 2253 Frogger(最短路变形,floyd算法)
- POJ 2253Frogger(翻译/最短路/floyd/思维)
- POJ 2253 - Frogger(最短路`dijkstra)
- POJ 2253 Frogger(最短路变形)
- poj 2253 Frogger (dijkstra最短路)
- POJ-2253 Frogger (最短路)
- POJ 2253 Frogger(最短路/迪杰斯特拉)
- 【Poj】-2253-Frogger(最短路,变化)
- [POJ 2253] Frogger [最短路]
- POJ 2253 Frogger 最短路
- poj-2253-Frogger-最短路
- poj 2253 Frogger【最短路】
- STM32定时器的小问题总结
- 软件测试方法大汇总
- 去掉大厅上面广告模块
- Python向飞信好友发送短信
- IOS学习笔记——UITableView (二)
- POJ 2253 Frogger(最短路 Floyd)
- linux下视频传输测试
- sgu 193 Chinese Girls' Amusement
- 近期学习计划1
- strtok函数分割字符串
- smtp邮件发送提供商 - 谷歌的限制
- ibatis-dynamic的用法
- 静态链表
- ubuntu下基于qt+opencv控制摄像头