题目链接:

http://poj.org/problem?id=2253

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

题意描述:
输入几个顶点的坐标
计算并输出从一号顶点到二号顶点所有最短路径中的最长距离
解题思路:
首先求出最短路径,Dijkstra算法不变,变化的是dis数组中存储的是所走的最短路径中最短的一段距离,在更新dis数组是加上判断条件即可。
属于最短路径最大权值,题目很经典,另还需了解
最短路径双重最小权值请参考:http://www.cnblogs.com/wenzhixin/p/7405802.html
最长路径最小权值请参考:http://www.cnblogs.com/wenzhixin/p/7336948.html
AC代码:
 #include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;
struct Node
{
double x,y;
};
struct Node node[];
double e[][],dis[];
int main()
{
int n,book[],i,j,u,v,t=;
double x,y,inf=,mins;
while(scanf("%d",&n),n != )
{
for(i=;i<=n;i++)
for(j=;j<=n;j++)
e[i][j]=inf;
for(i=;i<=n;i++)
scanf("%lf%lf",&node[i].x,&node[i].y);
for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
{
if(i != j)
e[i][j]=sqrt(fabs(node[i].x-node[j].x)*fabs(node[i].x-node[j].x)
+fabs(node[i].y-node[j].y)*fabs(node[i].y-node[j].y));
}
} for(i=;i<=n;i++)
dis[i]=e[][i];
memset(book,,sizeof(book));
book[]=;
for(i=;i<=n-;i++)
{
mins=inf;
for(j=;j<=n;j++)
{
if(!book[j] && dis[j] < mins)
{
mins=dis[j];
u=j;
}
}
book[u]=;
for(v=;v<=n;v++)
{
if(!book[v] && e[u][v] < inf)
{
if(dis[v] > max(dis[u],e[u][v]))
dis[v]=max(dis[u],e[u][v]);
}
}
}
printf("Scenario #%d\nFrog Distance = %.3lf\n\n",t++,dis[]);
}
return ;
}

使用Floyd算法更为精简

 #include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std; const int inf = ;
const int maxn = ;
struct Node {
double x,y;
}node[]; double e[maxn][maxn]; double dis(Node a, Node b) {
return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
} int main()
{
int n,kase = ;
while(scanf("%d", &n) == && n) {
for(int i = ; i <= n ; i++) {
scanf("%lf%lf", &node[i].x, &node[i].y);
} for(int i = ; i <=n; i++) {
for(int j = ; j <= n; j++){
e[i][j] = i == j? : inf;
}
}
for(int i = ; i < n; i++) {
for(int j = i + ; j <= n; j++){
e[i][j] = e[j][i] = dis(node[i], node[j]);
}
} for(int k = ; k <= n; k++) {
for(int i = ; i <= n; i++) {
for(int j = ; j <= n; j++) {
e[i][j]=min(e[i][j], max(e[i][k],e[k][j]));
}
}
}
printf("Scenario #%d\nFrog Distance = %.3f\n\n", kase++, e[][]);
}
return ;
}

POJ 2253 Frogger(Dijkstra变形——最短路径最大权值)的更多相关文章

  1. NYOJ 1248 海岛争霸(Dijkstra变形——最短路径最大权值)

    题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=1248 描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比 ...

  2. poj 2253 Frogger dijkstra算法实现

    点击打开链接 Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 21653   Accepted: 7042 D ...

  3. POJ 2253 - Frogger - [dijkstra求最短路]

    Time Limit: 1000MS Memory Limit: 65536K Description Freddy Frog is sitting on a stone in the middle ...

  4. POJ. 2253 Frogger (Dijkstra )

    POJ. 2253 Frogger (Dijkstra ) 题意分析 首先给出n个点的坐标,其中第一个点的坐标为青蛙1的坐标,第二个点的坐标为青蛙2的坐标.给出的n个点,两两双向互通,求出由1到2可行 ...

  5. POJ 2253 Frogger(dijkstra 最短路

    POJ 2253 Frogger Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fion ...

  6. POJ 3790 最短路径问题(Dijkstra变形——最短路径双重最小权值)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3790 Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你 ...

  7. 最短路(Floyd_Warshall) POJ 2253 Frogger

    题目传送门 /* 最短路:Floyd算法模板题 */ #include <cstdio> #include <iostream> #include <algorithm& ...

  8. POJ 2253 Frogger ,poj3660Cow Contest(判断绝对顺序)(最短路,floyed)

    POJ 2253 Frogger题目意思就是求所有路径中最大路径中的最小值. #include<iostream> #include<cstdio> #include<s ...

  9. POJ 2253 Frogger【最短路变形——路径上最小的最大权】

    链接: http://poj.org/problem?id=2253 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...

随机推荐

  1. centOS7 jdk安装

    1.查找需要卸载的OpenJDK: #  rpm -qa | grep java 2:依次卸载 rpm -e --nodeps javapackages-tools-3.4.1-6.el7_0.noa ...

  2. ES6 let和const命令(2)

    为什么要使用块级作用域 在ES5中只有全局作用域和函数作用域,没有块级作用域,因此带来了这些麻烦 内层变量可能会覆盖外层变量 var tmp = new Date(); console.log(tmp ...

  3. [知了堂学习笔记]_用JS制作《飞机大作战》游戏_第3讲(玩家发射子弹)

    一.公布上一讲中玩家飞机上.下.右移动实现的代码: /*=========================键盘按下事件 keycode为得到键盘相应键对应的数字==================== ...

  4. Appsacn 定期自动化扫描

    appscan提供了计划扫描的选项,配合windows的计划任务,可以按需设定. 操作流程如下: 1.打开Appsacn--工具---扫描调度程序---新建 2.新建后显示如下窗口 3.填写好相应的设 ...

  5. PHP常用功能模块

    错误异常模块 错误处理 1. 系统定义了一些二进制码,用来表示错误报告的级别:     在 /etc/php5/apache2/php.ini中修改php配置文件,其中display_errors默认 ...

  6. 转:java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)

    以下是从网上找到的关于堆空间溢出的错误解决办法: Java.lang.OutOfMemoryError: Java heap space =============================== ...

  7. AutoMapper 使用总结

    初识AutoMapper 在开始本篇文章之前,先来思考一个问题:一个项目分多层架构,如显示层.业务逻辑层.服务层.数据访问层.层与层访问需要数据载体,也就是类.如果多层通用一个类,一则会暴露出每层的字 ...

  8. Mac 安装python ,anaconda。彻底卸载anaconda的方法

    To uninstall Anaconda open a terminal window and remove the entire anaconda install directory: rm -r ...

  9. PE文件详解(九)

    本篇文章转载自小甲鱼的一篇日志,原文地址 我们知道,Windows 将程序的各种界面定义为资源,包括加速键(Accelerator).位图(Bitmap).光标(Cursor).对话框(Dialog ...

  10. Chris Richardson微服务翻译:构建微服务之使用API网关

    Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关(本文) 构建微服务之微服务架构的进程通讯 微服务架构中的服务发现 微服务之事件驱动的数据管理 微服 ...