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

题意: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.
这句话很重要,题中求得是青蛙一次至少跳多远才能成功到达对方所在的地方;即求所有路径中每条路径中的最大距离的最小值(求一条1~2的路径使得路径上的最大边权最小)

floyd中更新距离改成更新最小的最大边权;

  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<math.h>
  4. #include<string.h>
  5. #include<algorithm>
  6. #define INF 0xfffffff
  7. #define N 1100
  8. using namespace std;
  9. int n;
  10. double maps[N][N];
  11.  
  12. struct node
  13. {
  14. int x,y;
  15. }a[N];
  16. void Floyd()
  17. {
  18. int i,j,k;
  19. for(k=;k<=n;k++)
  20. {
  21. for(i=;i<=n;i++)
  22. {
  23. for(j=;j<=n;j++)
  24. {
  25. maps[i][j]=min(maps[i][j],max(maps[i][k],maps[k][j]));
  26. }
  27. }
  28. }
  29. }
  30.  
  31. int main()
  32. {
  33. int i,j,k,x,y,t=;
  34.  
  35. while(scanf("%d",&n),n)
  36. {
  37. memset(a,,sizeof(a));
  38.  
  39. k=;
  40.  
  41. for(i=;i<=n;i++)
  42. {
  43. scanf("%d%d",&x,&y);
  44.  
  45. for(j=;j<=k;j++)
  46. {
  47. double d=sqrt((x-a[j].x)*(x-a[j].x)+(y-a[j].y)*(y-a[j].y));
  48.  
  49. maps[i][j]=maps[j][i]=d;
  50. }
  51.  
  52. a[k].x=x,a[k].y=y,k++;
  53. }
  54. for(i=;i<=n;i++)
  55.  
  56. maps[i][i]=;
  57.  
  58. Floyd();
  59.  
  60. printf("Scenario #%d\nFrog Distance = %.3f\n\n",t++,maps[][]);
  61. }
  62. return ;
  63. }

用Dij算法就相当与prim;

dist[i] 代表i点之前的那个点到i的最短距离;求最短中的最长;

  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<math.h>
  4. #include<string.h>
  5. #include<algorithm>
  6. #define INF 0xfffffff
  7. #define N 1100
  8. using namespace std;
  9. int n,vis[N];
  10. double maps[N][N],dist[N],ans;
  11. struct node
  12. {
  13. int x,y;
  14. }a[N];
  15. void Dij()
  16. {
  17. int i,j,index;
  18. dist[]=;
  19. for(i=;i<=n;i++)
  20. {
  21. double Min=INF;
  22. for(j=;j<=n;j++)
  23. {
  24. if(vis[j]==&&Min>=dist[j])
  25. Min=dist[j],index=j;
  26. }
  27. vis[index]=;
  28. if(ans<dist[index]&&dist[index]!=INF)
  29. ans=dist[index];
  30. if(index==)
  31. return ;
  32. for(j=;j<=n;j++)
  33. {
  34. if(vis[j]==)
  35. dist[j]=min(dist[j],maps[index][j]);
  36. }
  37. }
  38. }
  39. int main()
  40. {
  41. int i,j,k,x,y,t=;
  42. while(scanf("%d",&n),n)
  43. {
  44. memset(vis,, sizeof(vis));
  45. memset(a,,sizeof(a));
  46. for(i=;i<=n;i++)
  47. dist[i]=INF;
  48. k=;
  49. for(i=;i<=n;i++)
  50. {
  51. scanf("%d%d",&x,&y);
  52. for(j=;j<=k;j++)
  53. {
  54. double d=sqrt((x-a[j].x)*(x-a[j].x)+(y-a[j].y)*(y-a[j].y));
  55. maps[i][j]=maps[j][i]=d;
  56. }
  57. a[k].x=x,a[k].y=y,k++;
  58. }
  59. for(i=;i<=n;i++)
  60. maps[i][i]=;
  61. ans=;
  62. Dij();
  63. printf("Scenario #%d\nFrog Distance = %.3f\n\n",t++,ans);
  64. }
  65. return ;
  66. }

Frogger--poj2253的更多相关文章

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

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

  2. POJ-2253(最短路变形+dijikstra算法+求解所有路径中所有最长边中的一个最小值)

    frogger POJ-2253 这题的代码特别像prim求解最小生成树的代码,其实两者本来也很像. 这里的d数组不再维护的起点到该点的最短距离了,而是路径中的最长距离. #include<io ...

  3. kuangbin 最短路集合

    Til the Cows Come Home poj-2387 #include<iostream> #include<cstdio> #include<algorith ...

  4. POJ2253 Frogger

    Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 34865   Accepted: 11192 Descrip ...

  5. poj2253 最短路 floyd Frogger

    Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 28825   Accepted: 9359 Descript ...

  6. POJ2253——Frogger(Floyd变形)

    Frogger DescriptionFreddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fi ...

  7. POJ-2253 Frogger(最短路)

    https://vjudge.net/problem/POJ-2253 题意 公青蛙想到母青蛙那里去,期间有许多石头,公青蛙可以通过这些石头跳过去.问至少要跳的最大距离,即所有路径上石头间的最大距离的 ...

  8. poj2253 Frogger(Floyd)

    题目链接 http://poj.org/problem?id=2253 题意 给出青蛙A,B和若干石头的坐标,现在青蛙A要跳到青蛙B所在的石头上,求出所有路径中最远那一跳的最小值. 思路 Floyd算 ...

  9. POJ2253:Frogger(改造Dijkstra)

    Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 64864   Accepted: 20127 题目链接:ht ...

  10. POJ2253 Frogger —— 最短路变形

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

随机推荐

  1. React Native(十一)——删除事件以及刷新列表

    需求:删除列表中的某一项,但不刷新整个页面,底下的数据顺势而上(第一张是原始数据,第二张是删除掉"你会介今年"这条动态后显示的数据). 中间的过程比较曲折,只因为刚开始的时候自己只 ...

  2. C++ template —— 模板特化(五)

    本篇讲解模板特化-------------------------------------------------------------------------------------------- ...

  3. numpy基本方法

    在学习python的时候常常需要numpy这个库,每次都是用一个查一个,这个,终于见到一个完整的总结了http://blog.csdn.net/blog_empire/article/details/ ...

  4. EGit系列第一篇——创建本地仓库

    首先,用Eclipse创建一个项目,然后右键项目Team\Share Preject... 然后出来Share Preject对话框,选择git 点击下一步配置Git仓库,通常在项目本地目录创建仓库, ...

  5. springboot---->springboot中的格式化(一)

    这里面我们简单的学习一下springboot中关于数据格式化的使用.我以为你不是个好人,没想到你连个坏人都不是. springboot中的格式化 我们的测试环境是springboot,一个将字符串格式 ...

  6. JS插件---->SyntaxHighlighter的使用

    SyntaxHighlighter是一款用于web页面的代码着色工具,可以用来着色多种语言.今天我们通过实例来学习一下它的用法.旧同桌不是老情人,但与你分享过的青春不比初恋少半分. SyntaxHig ...

  7. 三、K3 WISE 开发插件《K3 WISE开发手册》

    1.VB插件工程的命名.命名空间和生成的DLL命名要一致,否则导致注册不成功! 2.主控台的查询分析工具,添加sql直接报表,代码用到临时表,提示“在对应所需名称或序数的集合中未找到项目” 解决:在代 ...

  8. 【问题记录系列】the resource is not on the build path of a java project

    在eclipse中新建了一个maven项目搭建Spring源码阅读环境,创建一个bean生产getter和setter方法的时候报错“the resource is not on the build ...

  9. std::u32string conversion to/from std::string and std::u16string

    I need to convert between UTF-8, UTF-16 and UTF-32 for different API's/modules and since I know have ...

  10. java(6) ArrayList源码

    系统环境: JDK 1.7 成员变量 //默认的初始化数组大小 private static final int DEFAULT_CAPACITY = 10; //空的对象数组 private sta ...