pku2253 记录从初始到终点最长的路径(某一部分),迪杰斯特拉求最短路
来源:互联网 发布:php分页加跳转页面 编辑:程序博客网 时间:2024/05/17 23:01
Frogger
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 31932 Accepted: 10288
Description
Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sitting on another stone. He plans to visit her, but since the water is dirty and full of tourists' sunscreen, he wants to avoid swimming and instead reach her by jumping.
Unfortunately Fiona's stone is out of his jump range. Therefore Freddy considers to use other stones as intermediate stops and reach her by a sequence of several small jumps.
To execute a given sequence of jumps, a frog's jump range obviously must be at least as long as the longest jump occuring in the sequence.
The frog distance (humans also call it minimax distance) between two stones therefore is defined as the minimum necessary jump range over all possible paths between the two stones.
You are given the coordinates of Freddy's stone, Fiona's stone and all other stones in the lake. Your job is to compute the frog distance between Freddy's and Fiona's stone.
Unfortunately Fiona's stone is out of his jump range. Therefore Freddy considers to use other stones as intermediate stops and reach her by a sequence of several small jumps.
To execute a given sequence of jumps, a frog's jump range obviously must be at least as long as the longest jump occuring in the sequence.
The frog distance (humans also call it minimax distance) between two stones therefore is defined as the minimum necessary jump range over all possible paths between the two stones.
You are given the coordinates of Freddy's stone, Fiona's stone and all other stones in the lake. Your job is to compute the frog distance between Freddy's and Fiona's stone.
Input
The input will contain one or more test cases. The first line of each test case will contain the number of stones n (2<=n<=200). The next n lines each contain two integers xi,yi (0 <= xi,yi <= 1000) representing the coordinates of stone #i. Stone #1 is Freddy's stone, stone #2 is Fiona's stone, the other n-2 stones are unoccupied. There's a blank line following each test case. Input is terminated by a value of zero (0) for n.
Output
For each test case, print a line saying "Scenario #x" and a line saying "Frog Distance = y" where x is replaced by the test case number (they are numbered from 1) and y is replaced by the appropriate real number, printed to three decimals. Put a blank line after each test case, even after the last one.
Sample Input
20 03 4317 419 418 50
Sample Output
Scenario #1Frog Distance = 5.000Scenario #2Frog Distance = 1.414
Source
Ulm Local 1997
#include<stdio.h>#include<string.h>#include<stdlib.h>//#define inf 0xffffff#define inf 527527.0#include<math.h>#include<cmath>#include<iostream>using namespace std;float mp[222][1222];float dis[222];int visit[222];typedef struct{ int x; int y;} node;void suan(int &n){ for(int i=1; i<=n ; i++) { dis[i]=mp[1][i]; } visit[1]=1; int pos; for(int i=1; i<=n-1; i++) { float mincost=inf; for(int j=1; j<=n; j++) { if(!visit[j]&&dis[j]<mincost) { pos=j; mincost=dis[j]; } } visit[pos]=1; for(int j=1; j<=n; j++) { if(!visit[j]&&mp[pos][j]!=inf) dis[j]=min(dis[j],max(dis[pos],mp[pos][j])); } }}int main(){ int n; int sb=1; node q[220]; while(scanf("%d",&n)) { if(n==0) break; memset(mp,inf,sizeof(mp)); memset(visit,0,sizeof(visit)); int a,b,c; for(int i=1; i<=n; i++) { scanf("%d%d",&q[i].x,&q[i].y); } for(int i=1; i<=n; i++) for(int j=1+i; j<=n; j++) { mp[i][j]=mp[j][i]=sqrt((float)((q[i].x-q[j].x)*(q[i].x-q[j].x)+(q[i].y-q[j].y)*(q[i].y-q[j].y))); } suan(n); printf("Scenario #%d\nFrog Distance = %.3lf\n\n",sb++,dis[2]); }}
0 0
- pku2253 记录从初始到终点最长的路径(某一部分),迪杰斯特拉求最短路
- pku2253 记录从初始到终点最小的路径(某一部分),迪杰斯特拉求最短路
- Unique Paths 寻找从起点到终点的路径个数
- 迷宫问题:利用BFS打印出从起点到终点的路径(java版)
- 迷宫的最短路径(BFS,起点到终点)
- 固定终点的最长路和最短路
- 迷宫问题2-在给定的迷宫中计算从起点到终点的路径数目
- Java 有向图的遍历,寻找所有从起点到终点的路径
- leetcode之网格从起点到终点的路径数之滚动数组
- poj-3268 Silver Cow Party (最短路-spfa-求到同一起点,同一终点的最短路)
- 迷宫问题1-在给定的迷宫中判断是否存在一条路径从起点到终点
- Key Vertex (hdu 3313 SPFA+DFS 求起点到终点路径上的割点)
- 硬币问题——固定终点的最长路和最短路
- 开源,从起点到终点
- hdu 4240 Route Redundancy(求起点到终点的路径中流量最大的路径的流量)
- 0001-人生就是一场从起点到终点的历程
- 二叉树最近公共父节点(记录根到某一节点路径)
- 最短路(闲写的,给自己看的,用来打路径的,最长的路段,最短路段)
- 响应式布局
- mysql查询缓存
- 从C++中传送多个数据(类似于结构体)进入QML的listView中
- 最近的工作
- VMware下安装ubuntu,桥接上网配置静态IP
- pku2253 记录从初始到终点最长的路径(某一部分),迪杰斯特拉求最短路
- 如何在tomcat上面直接输入ip/localhost来访问web项目
- svn pre-commit代码审查方案--reviewboard-svn-hooks
- UVA 674 Coin Change 钱币兑换问题 类似完全背包
- Android Studio 教程(干货)
- Tomcat配置JMX远程监控 Win7 Linxu
- GreenDAO使用
- hpuoj 1699: 回文串问题 (回文字符串&manacher)
- 网站优化思路