博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2253, Frogger
阅读量:6431 次
发布时间:2019-06-23

本文共 2912 字,大约阅读时间需要 9 分钟。

Time Limit: 1000MS  Memory Limit: 65536K

Total Submissions: 7844  Accepted: 2685

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.

 

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

Ulm Local 1997


//
 POJ2253.cpp : Defines the entry point for the console application.
//
#include 
<
iostream
>
#include 
<
cmath
>
#include 
<
iomanip
>
   
using
 
namespace
 std;
int
 main(
int
 argc, 
char
*
 argv[])
{
    
int
 stones;
    
    
double
 b[
201
][
201
];
    
int
 v[
201
][
2
];
    
int
 c 
=
 
0
;
    
while
 (cin 
>>
 stones 
&&
 stones 
!=
 
0
)
    {    
        
for
 (
int
 i 
=
 
0
; i 
<
 stones; 
++
i)
            cin 
>>
 v[i][
0
>>
 v[i][
1
];
        memset(
&
b, 
0
sizeof
(b));
        
for
 (
int
 i 
=
 
0
; i 
<
 stones; 
++
i)
            
for
 (
int
 j 
=
 i 
+
 
1
; j 
<
 stones; 
++
j)
                b[j][i] 
=
 b[i][j] 
=
 sqrt((
double
)(v[i][
0
-
 v[j][
0
])
*
(v[i][
0
-
 v[j][
0
]) 
+
 (v[i][
1
-
 v[j][
1
]) 
*
 (v[i][
1
-
 v[j][
1
]));
        
for
 (
int
 k 
=
 
0
; k 
<
 stones; 
++
k)
            
for
 (
int
 i 
=
 
0
; i 
<
 stones; 
++
i)
                
for
 (
int
 j 
=
 
0
; j 
<
 stones; 
++
j)
                    b[i][j] 
=
 min(max(b[i][k],b[k][j]),b[i][j]) ;
         cout 
<<
 
"
Scenario #
"
 
<<
 
++
<<
 endl;
         cout 
<<
 
"
Frog Distance = 
"
 
<<
 
fixed
 
<<
 showpoint 
<<
 setprecision(
3
<<
 b[
0
][
1
<<
 endl 
<<
 endl;    
    }
    
return
 
0
;
}

转载于:https://www.cnblogs.com/asuran/archive/2009/09/30/1576789.html

你可能感兴趣的文章
poj 3414 Pots (bfs+线索)
查看>>
Binary search
查看>>
http://jingyan.baidu.com/article/08b6a591f0fafc14a9092275.html
查看>>
MySQL查询数据表的Auto_Increment(自增id)
查看>>
java多线程系类:JUC集合:01之框架
查看>>
【Linux】 源码安装make命令详解,避免踩坑
查看>>
数据库中间表插入乱序
查看>>
[Python爬虫] 之四:Selenium 抓取微博数据
查看>>
使用OPENROWSET爆破SQL Server密码
查看>>
Mac_安装Homebrew以及Maven
查看>>
eclipse web开发Server配置
查看>>
曹政--互联网搜索老师傅
查看>>
MUI框架开发HTML5手机APP(一)--搭建第一个手机APP(转)
查看>>
linux下使用 du查看某个文件或目录占用磁盘空间的大小
查看>>
Android水波纹特效的简单实现
查看>>
[wp7软件]wp7~~各种视频播放器下载大全
查看>>
Java工程师必知之事 —— 如何定义自己的职业路线?
查看>>
Java中对象并不是都在堆上分配内存的。
查看>>
代码质量与规范,那些年你欠下的技术债
查看>>
计算机程序的思维逻辑 (19) - 接口的本质
查看>>