POJ2253 Frogger

原创 2016年05月30日 23:16:07


Frogger
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 34865   Accepted: 11192

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. 

给定湖中两只青蛙所在的石头,以及其他石头的坐标,试计算两只青蛙之间的青蛙距离。
青蛙距离:两块石头之间所有路径中的最大跳跃距离的最小值

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.
多组数据
每组第一行为整数n,表示石头数目。接下来n行每行两个整数xi和yi,表示第i块石头坐标。
输入文件最后一行为0

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

2
0 0
3 4

3
17 4
19 4
18 5

0

Sample Output

Scenario #1
Frog Distance = 5.000

Scenario #2
Frog Distance = 1.414

Source




因为已经限定了两只青蛙在石头1和2上,所以是单源最短路径问题

跑了遍floyd就过了


求青蛙距离:map[i][j]=min(map[i][j],max(map[i][k],map[k][j])



#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int mxn=2000;
int x[mxn],y[mxn];//石头坐标 
double mp[210][210];//图 
int n;
double dis(int x1,int x2,int y1,int y2){//求两点间距离 
	return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
void cdis(){//将两点间距离存入邻接矩阵 
	memset(mp,0,sizeof(0));
	int i,j;
	for(i=1;i<=n;i++)
	  for(j=1;j<=n;j++){
	  	mp[i][j]=dis(x[i],x[j],y[i],y[j]);
	  }
	return;
}
int main(){
	int T=0;
	while(scanf("%d",&n) && n){
		printf("Scenario #%d\n",++T);
		int i,j;
		for(i=1;i<=n;i++){
			scanf("%d%d",&x[i],&y[i]);
		}
		cdis();
		for(int k=1;k<=n;k++)
			for(i=1;i<=n;i++)
		  		for(j=1;j<=n;j++){
					mp[i][j]=min(mp[i][j],max(mp[i][k],mp[k][j]));
//					printf("%d  %d  %d\n",k,i,j);
//					printf("%.3f  %.3f  %.3f\n",mp[i][j],mp[i][k],mp[k][j]);
		  	}
		printf("Frog Distance = %.3f\n\n",mp[1][2]);//注意空行 
	}
	return 0;
}








版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

POJ2253-Frogger【Floyd】

  • 2011年07月30日 01:53
  • 7KB
  • 下载

POJ 2253 Frogger(最短路变形)

题意:在笛卡尔坐标系内, 有若干个点,每个点互相可直达,求第一个点到第二个点所经过的最大边的最小情况。 解题思路:dijkstra变形, d[i]表示从s点到i点中的最大边。求解d[2]即可。 注意精...
  • qwe585p
  • qwe585p
  • 2015年09月17日 14:41
  • 310

POJ2253 Frogger 【Dijkstra】

Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26417   Accep...

POJ 2253 - Frogger

参考:http://www.cnblogs.com/tanhehe/p/3169865.html 另外请参考:http://blog.csdn.net/PKU_ZZY/article/details/...
  • Freenm
  • Freenm
  • 2017年04月09日 21:39
  • 101

【POJ 2253】Frogger(Dijkstra)

DescriptionFreddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog...

最短路变形 POJ 2253 Frogger

这题也是最短路类的题目 但求的不是从一点到另一点的最短路径,而是求从起点到终点的所有的路径中每条路径上的最大边的最小值,好像有点拗口。。 其实这并没有难多少,只需要把dijstra的松弛过程改一下就可...

poj2253-Frogger (最小生成树)

题目链接:         vis[i]=0;         dis[i]=map[st][i];     }     vis[st]=1;     for(i=1;i     {  ...

poj 2253 frogger

题目衔接:http://poj.org/problem?id=2253 题解:求出图中两点所有路径中权值最大数中的最小值,即可简化为求最小生成树中的距离最大值 AC代码:Memor...

Poj 2253 Frogger【kuskal变形】

Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 352...

poj 2253 Frogger(dijkstra)

Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20903   Accepted: 6786 ...
  • ren_hui
  • ren_hui
  • 2013年07月26日 13:01
  • 332
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ2253 Frogger
举报原因:
原因补充:

(最多只允许输入30个字)