题目大意:

给出n个岛的坐标,前两个坐标分别为A青蛙和B青蛙所在岛的坐标,A青蛙想到达B青蛙所在的岛,A可以从某一个岛跳到任意其它一个岛上,则A到B的每条路径都有一个跳的最远的距离Xi,求这些最远距离中的最小值。

用dijkstra解决,其中dist[J]为起点到J的所有路径中最长边的最小值。

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <math.h>
 4 #include <algorithm>
 5 using namespace std;
 6
 7 int n, visit[200];
 8 double x[200], y[200];
 9 double G[200][200];
10 double dist[200];
11 const int inf = 2000;
12
13 void dijkstra() {
14     fill(visit, visit + n, 0);
15     fill(dist, dist + n, inf);
16     dist[0] = 0;
17     for (int i = 0; i < n; i++) {
18         int minn = inf, v;
19         for (int j = 0; j < n; j++) {
20             if (!visit[j] && dist[j] < minn) {
21                 minn = dist[j];
22                 v = j;
23             }
24         }
25         visit[v] = 1;
26         if (v == 1)
27             break;
28         for (int j = 0; j < n; j++) {
29             if (!visit[j])
30                 dist[j] = min(dist[j], max(dist[v], G[v][j]));
31         }
32     }
33 }
34
35 int main() {
36     int cnt = 0;
37     while (true) {
38         cin >> n;
39         if (n == 0)
40             break;
41         for (int i = 0; i < n; i++)
42             cin >> x[i] >> y[i];
43         for (int i = 0; i < n; i++) {
44             for (int j = 0; j < n; j++)
45                 G[i][j] = sqrt((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j]));
46         }
47         dijkstra();
48         printf("Scenario #%d\n", ++cnt);
49         printf("Frog Distance = %.3lf\n\n", dist[1]);
50     }
51     return 0;
52 }

转载于:https://www.cnblogs.com/lxc1910/p/10544484.html

poj2253 Frogger dijkstra相关推荐

  1. POJ2253 Frogger(最短路径)

    题意: 青蛙想从一个石子跳到另一个石子,中间有很多石子,要求青蛙跳跃距离应为路径中最大的距离,现在要求所有路径中最小的跳跃距离,就是求所有路径中最大距离的最小值. 要点: 可以用最短路径做,用Floy ...

  2. poj2253 Frogger(最短路变型或者最小生成树)

    1 /* 2 题意:就是源点到终点有多条的路径,每一条路径中都有一段最大的距离! 3 求这些路径中最大距离的最小值! 4 5 Dijkstra, Floyd, spfa都是可以的!只不过是将松弛的条件 ...

  3. poj-2253 Frogger(最短路)

    **题意描述 给出一系列的点,前两个点是青蛙的坐标,需要求的是第一个坐标到第二个坐标之间经历的最短距离. 解题思路: 还是Dijkstra算法做题,在数组进行存储的时候通过用数学方法求出知道的两个点之 ...

  4. android字体中间横线,Android TextView(EditView)文字底部或者中间 加横线

    ​Si2151/41 6th Generation Silicon TV Tuner ICs ​ The Si2151/41 are the industry's most advanced sili ...

  5. (最短路 Floyd diskstra prim)Frogger --POJ--2253

    题目链接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...

  6. POJ 2253 Frogger(floyd dijkstra spfa)

    题目链接:http://poj.org/problem?id=2253 题目: 弗雷迪青蛙正坐在湖中央的一块石头上. 突然,他注意到正坐在另一块石头上的菲奥娜青蛙. 他打算去看望她,但由于水很脏,游客 ...

  7. B - Frogger POJ - 2253

    B - Frogger POJ - 2253 题意: 从 1 号点出发,找每一条能够到达 2 号点的路径,每条路径的答案是该路径中相邻两点之间距离的最大值,求这些答案中的最小值. 思路: 感觉不是最短 ...

  8. 一步一步深入理解Dijkstra算法

    先简单介绍一下最短路径: 最短路径是啥?就是一个带边值的图中从某一个顶点到另外一个顶点的最短路径. 官方定义:对于内网图而言,最短路径是指两顶点之间经过的边上权值之和最小的路径. 并且我们称路径上的第 ...

  9. POJ 1797-Heavy Transportation-dijkstra小变形和POJ2253类似

    传送门:http://poj.org/problem?id=1797 题意: 在起点和终点间找到一条路,使得经过的边的最小值是最大的: 和POJ2253类似,传送门:http://www.cnblog ...

最新文章

  1. 基础设计模式:单例模式+工厂模式+注册树模式
  2. PAGER set to stdout_Python || 学习笔记(4):dictamp;amp;set
  3. 搬家到新地址:http://kittsoft.xp3.biz/,欢迎访问!
  4. extjs 表单设置html5,ExtJS 配置和表格控件使用
  5. 使用Apache Isis快速进行SEMAT应用程序开发
  6. 小车故障灯亮显示大全_史上最全汽车故障灯大全,留着一定有用!
  7. 我是如何使用wireshark软件的
  8. 构建时预渲染:网页首帧优化实践
  9. java 数据保存内存_java中的各种数据类型在内存中存储的方式 一
  10. 报错Uncaught ReferenceError: xxx is not defined at HTMLButtonElement.onclick
  11. bzoj 4318 OSU!
  12. 三阶魔方大中小魔公式_三阶魔方花样公式汇总
  13. c语言实现审查元素,如何删除qq空间说说?一键自动删除QQ空间说说审查元素代码分享(超简单)...
  14. 计算机网络管理工程师证书考试试题,网络工程师考试模拟试题四-试题试卷网...
  15. 【CSDN软件工程师能力认证学习精选】SQL语句查询
  16. 北海屠龙记------一
  17. ffmpeg js转换音频_webRTC使用ffmpeg.js将webm转换为mp4
  18. 矩阵分析与应用-1.7-逆矩阵
  19. 纯CSS制作3D动态相册【流星雨3D旋转相册】HTML+CSS+JavaScriptHTML5七夕情人节表白网页制作
  20. VCP-DCV6.7学习心得

热门文章

  1. XML表示的数据库数据
  2. 一款不错的基于WEB技术的文件服务器
  3. 计算机专业毕业文案,我们毕业啦!|今天,没有文案
  4. 认证连接_长江连接器哪些产品通过认证?
  5. Android异步下载网络图片(其二:AsyncTask)
  6. 浅析三层架构与MVC模式的区别
  7. 图结构练习——DFS——判断可达性
  8. redis的flushall命令
  9. c++中new和delete的使用方法
  10. C++中的覆盖(重写)、重载、隐藏(重定义)、多态!