poj2253 Frogger dijkstra
题目大意:
给出n个岛的坐标,前两个坐标分别为A青蛙和B青蛙所在岛的坐标,A青蛙想到达B青蛙所在的岛,A可以从某一个岛跳到任意其它一个岛上,则A到B的每条路径都有一个跳的最远的距离Xi,求这些最远距离中的最小值。
用dijkstra解决,其中dist[J]为起点到J的所有路径中最长边的最小值。
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <algorithm>
using namespace std; int n, visit[];
double x[], y[];
double G[][];
double dist[];
const int inf = ; void dijkstra() {
fill(visit, visit + n, );
fill(dist, dist + n, inf);
dist[] = ;
for (int i = ; i < n; i++) {
int minn = inf, v;
for (int j = ; j < n; j++) {
if (!visit[j] && dist[j] < minn) {
minn = dist[j];
v = j;
}
}
visit[v] = ;
if (v == )
break;
for (int j = ; j < n; j++) {
if (!visit[j])
dist[j] = min(dist[j], max(dist[v], G[v][j]));
}
}
} int main() {
int cnt = ;
while (true) {
cin >> n;
if (n == )
break;
for (int i = ; i < n; i++)
cin >> x[i] >> y[i];
for (int i = ; i < n; i++) {
for (int j = ; j < n; j++)
G[i][j] = sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
}
dijkstra();
printf("Scenario #%d\n", ++cnt);
printf("Frog Distance = %.3lf\n\n", dist[]);
}
return ;
}
poj2253 Frogger dijkstra的更多相关文章
- poj2253 Frogger Dijkstra变形
题目链接:http://poj.org/problem?id=2253 就是求所有路径的最大边权值的最小值 处理时每次找出距离当前的已选的节点的最短距离,然后更新每个未选节点的值 代码: #inclu ...
- poj 2253 Frogger dijkstra算法实现
点击打开链接 Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 21653 Accepted: 7042 D ...
- POJ-2253 Frogger(最短路)
https://vjudge.net/problem/POJ-2253 题意 公青蛙想到母青蛙那里去,期间有许多石头,公青蛙可以通过这些石头跳过去.问至少要跳的最大距离,即所有路径上石头间的最大距离的 ...
- POJ2253 Frogger —— 最短路变形
题目链接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissi ...
- poj2253 Frogger(最短路变型或者最小生成树)
/* 题意:就是源点到终点有多条的路径,每一条路径中都有一段最大的距离! 求这些路径中最大距离的最小值! Dijkstra, Floyd, spfa都是可以的!只不过是将松弛的条件变一下就行了! 想了 ...
- POJ2253 Frogger
Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 34865 Accepted: 11192 Descrip ...
- POJ2253——Frogger(Floyd变形)
Frogger DescriptionFreddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fi ...
- POJ2253 Frogger(最短路)
题目链接. 题意: 从0号点,到1号点,找一条能通过的路,使得这条路中的最大的边,比其它所有可能的路中的边都小. 分析: 这题就是按着dijkstra写,写着写着觉得像是prim了. 其中d[n]表示 ...
- POJ-2253.Frogger.(求每条路径中最大值的最小值,最短路变形)
做到了这个题,感觉网上的博客是真的水,只有kuangbin大神一句话就点醒了我,所以我写这篇博客是为了让最短路的入门者尽快脱坑...... 本题思路:本题是最短路的变形,要求出最短路中的最大跳跃距离, ...
随机推荐
- 马的移动(BFS) 详细注释 一个具有情怀的题目
题目描述 小明很喜欢下国际象棋,一天,他拿着国际象棋中的"马"时突然想到一个问题: 给定两个棋盘上的方格a和b,马从a跳到b最少需要多少步? 现请你编程解决这个问题. 提示:国际象 ...
- C++标准库之String
C++中支持的字符串处理的函数库叫String,但它不是STL,却与STL操作十分相似. 1.声明: 使用String之前要有以下头文件 #include<string> using na ...
- [转] 理解 JavaScript 的 async/await
[From] https://segmentfault.com/a/1190000007535316 边城 2016年11月19日发布 随着 Node 7 的发布,越来越多的人开始研究据说是 ...
- Oracle sql 中的 ALL,ANY,SOME
[转自] http://www.itpub.net/thread-1355835-1-1.html any和some是等价的,其与all的前面都只能是比较符号,即=, !=, >, <, ...
- android 无线调试 [无需数据线][无需root]
无线调试首要条件在同一网段,打开开发者模式 1,打开 5555 端口 使用数据线链接手机,在命令窗口执行:adb tcpip 5555 2,adb 链接手机调试 这时无需数据线了,在命令窗口执行:ad ...
- Python中将列表转化成矩阵表示
list1 = [] a = [1,3,4] b = [2,5,6] list1.append(a) list1.append(b) arr = np.array(list1) # 打印arr pri ...
- oracle基础知识(六)----spfile与pfile
一, 认识参数文件 Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的,决定了数据库的物理 结构.内存.数据库的限制及系统大量的默认值 ...
- mysql DQL语言操作
SQL语句的执行顺序:from-where-group by-having-select-order by where 可以筛选多个条件,如 where A and B 1.排序order by 列 ...
- 控制台之console
控制台中的用法有很多,比如常用的console.log(),还有不常用的 console.warn(). console.error()等,下面对控制台中主要的console方法做一个简单的介绍. 1 ...
- oracle 查询及删除表中重复数据
create table test1( id number, name varchar2(20) ); ,'jack'); ,'jack'); ,'peter'); ,'red'); insert i ...