poj 2253 Frogger (最小最大路段)【dijkstra】
<题目链接>
题目大意:
给出青蛙A,B和若干石头的坐标,现青蛙A想到青蛙B那,A可通过任意石头到达B,问从A到B多条路径中最小的最长边。
解题分析:
这是最短路的一类典型题目,与普通的最短路的不同之处在于松弛操作。
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std; #define N 205
int n;
struct Node{
int x,y;
Node(int _x=,int _y=):x(_x),y(_y){}
}node[N];
bool vis[N];
double dist[N];
double dis(Node a,Node b){
return (double)sqrt(1.0*(a.x-b.x)*(a.x-b.x)+1.0*(a.y-b.y)*(a.y-b.y));
}
void Dij(){
memset(vis,,sizeof(vis));
for(int i=;i<=n;i++)dist[i]=dis(node[],node[i]);
for(int i=;i<=n;i++){
int cur;double mn=1e9;
for(int j=;j<=n;j++){
if(!vis[j] && dist[j]<mn)
mn=dist[j],cur=j;
}
vis[cur]=;
for(int j=;j<=n;j++){
if(!vis[j] && dist[j]>max(dist[cur],dis(node[cur],node[j]))){ //得到最小的最大路段值
dist[j]=max(dist[cur],dis(node[cur],node[j]));
}
}
}
}
int main(){
int ncase=;
while(scanf("%d",&n)!=EOF,n){
for(int i=;i<=n;i++){
int u,v;scanf("%d%d",&u,&v);
node[i]=Node(u,v);
}
Dij();
printf("Scenario #%d\n",++ncase);
printf("Frog Distance = %.3lf\n\n",dist[]);
}
}
2018-08-26
poj 2253 Frogger (最小最大路段)【dijkstra】的更多相关文章
- poj 2253 Frogger 最小瓶颈路(变形的最小生成树 prim算法解决(需要很好的理解prim))
传送门: http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissi ...
- POJ 2253 Frogger(最小最大距离)
题意 给你n个点的坐标 求第1个点到第2个点的全部路径中两点间最大距离的最小值 非常水的floyd咯 #include<cstdio> #include<cmath> #i ...
- POJ - 2253 Frogger(最短路Dijkstra or flod)
题意:要从起点的石头跳到终点的石头,设The frog distance为从起点到终点的某一路径中两点间距离的最大值,问在从起点到终点的所有路径中The frog distance的最小值为多少. 分 ...
- POJ. 2253 Frogger (Dijkstra )
POJ. 2253 Frogger (Dijkstra ) 题意分析 首先给出n个点的坐标,其中第一个点的坐标为青蛙1的坐标,第二个点的坐标为青蛙2的坐标.给出的n个点,两两双向互通,求出由1到2可行 ...
- POJ 2253 Frogger(dijkstra 最短路
POJ 2253 Frogger Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fion ...
- 最短路(Floyd_Warshall) POJ 2253 Frogger
题目传送门 /* 最短路:Floyd算法模板题 */ #include <cstdio> #include <iostream> #include <algorithm& ...
- POJ 2253 Frogger ,poj3660Cow Contest(判断绝对顺序)(最短路,floyed)
POJ 2253 Frogger题目意思就是求所有路径中最大路径中的最小值. #include<iostream> #include<cstdio> #include<s ...
- POJ 2253 ——Frogger——————【最短路、Dijkstra、最长边最小化】
Frogger Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Stat ...
- poj 2253 Frogger (dijkstra最短路)
题目链接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissi ...
随机推荐
- day2 查看文件目录命令:ls
查看当前文件夹下面多有的目录文件ls 查看当前目录下面所有的文件,包括隐藏的文件ls -a(或者两个一样ls -all) 显示除"."和".."外的所有文件ls ...
- 深入剖析ThreadLocal实现原理以及内存泄漏问题
关于ThreadLocalMap<ThreadLocal, Object>弱引用问题: 当线程没有结束,但是ThreadLocal已经被回收,则可能导致线程中存在ThreadLocalMa ...
- GSON中Java对象与JSON互相转换——(一)
json的转换插件是通过java的一些工具,直接将java对象或集合转换成json字符串. 常用的json转换工具有如下几种: 1)jsonlib 2)Gson:google 3)fastjson:阿 ...
- v4l2文档之——color and format【转】
转自:https://blog.csdn.net/zoe6553/article/details/17715407 v4l2文档第五A--颜色与格式 颜色与格式这是不定期发布的关于写视频驱动程序 ...
- 没有备份怎么恢复被drop的表(利用undrop-for-innodb)
介绍: 也许大家都难以理解,这么重要的数据为啥不备份(或者备份不可用)?而且还任性的drop table了.显然有备份是最好的,但是它们并不总是可用的.这种情况令人恐惧,但并非毫无希望.在许多 ...
- 安装jdk的时候为什么会有两个jre文件
有些东西,你懂不懂其实并不太影响你干活,但有些人就是有疑惑就非得弄懂,不然浑身难受,我大概就是这种德性的.昨天安装javaSE的时候,看到jdk中有个jre文件夹,而根目录下又有个jre文件夹,非常困 ...
- 018_mac写权限的问题
一. 有时候运行一些软件的时候,操作系统下的文件没有写权限.我在使用"HostAdmin App"时碰到了这个问题,google的链接供参考:https://code.google ...
- centos中进程管理工具
进程管理: 二进制的格式为ELF,是CPU指令集中的指令 程序=指令+数据, 进程是程序的副本,可以有多个 内核是一个资源调度监视器 Linux是抢占式多任务 内存被事先划分成多个相同大小 ...
- 转载:Java高并发,如何解决,什么方式解决
原文:https://www.cnblogs.com/lr393993507/p/5909804.html 对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并 ...
- DOS命令大全(转)
dos命令大全 CMD是command的缩写,是windows环境下的虚拟DOS窗口,提供有DOS命令,功能强大,如果你以前学习过DOS操作,那就小儿科了.是基于Windows的命令行窗口,在开始-- ...