Frogger--poj2253
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中更新距离改成更新最小的最大边权;
- #include<iostream>
- #include<stdio.h>
- #include<math.h>
- #include<string.h>
- #include<algorithm>
- #define INF 0xfffffff
- #define N 1100
- using namespace std;
- int n;
- double maps[N][N];
- struct node
- {
- int x,y;
- }a[N];
- void Floyd()
- {
- int i,j,k;
- for(k=;k<=n;k++)
- {
- for(i=;i<=n;i++)
- {
- for(j=;j<=n;j++)
- {
- maps[i][j]=min(maps[i][j],max(maps[i][k],maps[k][j]));
- }
- }
- }
- }
- int main()
- {
- int i,j,k,x,y,t=;
- while(scanf("%d",&n),n)
- {
- memset(a,,sizeof(a));
- k=;
- for(i=;i<=n;i++)
- {
- scanf("%d%d",&x,&y);
- for(j=;j<=k;j++)
- {
- double d=sqrt((x-a[j].x)*(x-a[j].x)+(y-a[j].y)*(y-a[j].y));
- maps[i][j]=maps[j][i]=d;
- }
- a[k].x=x,a[k].y=y,k++;
- }
- for(i=;i<=n;i++)
- maps[i][i]=;
- Floyd();
- printf("Scenario #%d\nFrog Distance = %.3f\n\n",t++,maps[][]);
- }
- return ;
- }
用Dij算法就相当与prim;
dist[i] 代表i点之前的那个点到i的最短距离;求最短中的最长;
- #include<iostream>
- #include<stdio.h>
- #include<math.h>
- #include<string.h>
- #include<algorithm>
- #define INF 0xfffffff
- #define N 1100
- using namespace std;
- int n,vis[N];
- double maps[N][N],dist[N],ans;
- struct node
- {
- int x,y;
- }a[N];
- void Dij()
- {
- int i,j,index;
- dist[]=;
- for(i=;i<=n;i++)
- {
- double Min=INF;
- for(j=;j<=n;j++)
- {
- if(vis[j]==&&Min>=dist[j])
- Min=dist[j],index=j;
- }
- vis[index]=;
- if(ans<dist[index]&&dist[index]!=INF)
- ans=dist[index];
- if(index==)
- return ;
- for(j=;j<=n;j++)
- {
- if(vis[j]==)
- dist[j]=min(dist[j],maps[index][j]);
- }
- }
- }
- int main()
- {
- int i,j,k,x,y,t=;
- while(scanf("%d",&n),n)
- {
- memset(vis,, sizeof(vis));
- memset(a,,sizeof(a));
- for(i=;i<=n;i++)
- dist[i]=INF;
- k=;
- for(i=;i<=n;i++)
- {
- scanf("%d%d",&x,&y);
- for(j=;j<=k;j++)
- {
- double d=sqrt((x-a[j].x)*(x-a[j].x)+(y-a[j].y)*(y-a[j].y));
- maps[i][j]=maps[j][i]=d;
- }
- a[k].x=x,a[k].y=y,k++;
- }
- for(i=;i<=n;i++)
- maps[i][i]=;
- ans=;
- Dij();
- printf("Scenario #%d\nFrog Distance = %.3f\n\n",t++,ans);
- }
- return ;
- }
Frogger--poj2253的更多相关文章
- (最短路 Floyd diskstra prim)Frogger --POJ--2253
题目链接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissi ...
- POJ-2253(最短路变形+dijikstra算法+求解所有路径中所有最长边中的一个最小值)
frogger POJ-2253 这题的代码特别像prim求解最小生成树的代码,其实两者本来也很像. 这里的d数组不再维护的起点到该点的最短距离了,而是路径中的最长距离. #include<io ...
- kuangbin 最短路集合
Til the Cows Come Home poj-2387 #include<iostream> #include<cstdio> #include<algorith ...
- POJ2253 Frogger
Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 34865 Accepted: 11192 Descrip ...
- poj2253 最短路 floyd Frogger
Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 28825 Accepted: 9359 Descript ...
- POJ2253——Frogger(Floyd变形)
Frogger DescriptionFreddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fi ...
- POJ-2253 Frogger(最短路)
https://vjudge.net/problem/POJ-2253 题意 公青蛙想到母青蛙那里去,期间有许多石头,公青蛙可以通过这些石头跳过去.问至少要跳的最大距离,即所有路径上石头间的最大距离的 ...
- poj2253 Frogger(Floyd)
题目链接 http://poj.org/problem?id=2253 题意 给出青蛙A,B和若干石头的坐标,现在青蛙A要跳到青蛙B所在的石头上,求出所有路径中最远那一跳的最小值. 思路 Floyd算 ...
- POJ2253:Frogger(改造Dijkstra)
Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 64864 Accepted: 20127 题目链接:ht ...
- POJ2253 Frogger —— 最短路变形
题目链接:http://poj.org/problem?id=2253 Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissi ...
随机推荐
- React Native(十一)——删除事件以及刷新列表
需求:删除列表中的某一项,但不刷新整个页面,底下的数据顺势而上(第一张是原始数据,第二张是删除掉"你会介今年"这条动态后显示的数据). 中间的过程比较曲折,只因为刚开始的时候自己只 ...
- C++ template —— 模板特化(五)
本篇讲解模板特化-------------------------------------------------------------------------------------------- ...
- numpy基本方法
在学习python的时候常常需要numpy这个库,每次都是用一个查一个,这个,终于见到一个完整的总结了http://blog.csdn.net/blog_empire/article/details/ ...
- EGit系列第一篇——创建本地仓库
首先,用Eclipse创建一个项目,然后右键项目Team\Share Preject... 然后出来Share Preject对话框,选择git 点击下一步配置Git仓库,通常在项目本地目录创建仓库, ...
- springboot---->springboot中的格式化(一)
这里面我们简单的学习一下springboot中关于数据格式化的使用.我以为你不是个好人,没想到你连个坏人都不是. springboot中的格式化 我们的测试环境是springboot,一个将字符串格式 ...
- JS插件---->SyntaxHighlighter的使用
SyntaxHighlighter是一款用于web页面的代码着色工具,可以用来着色多种语言.今天我们通过实例来学习一下它的用法.旧同桌不是老情人,但与你分享过的青春不比初恋少半分. SyntaxHig ...
- 三、K3 WISE 开发插件《K3 WISE开发手册》
1.VB插件工程的命名.命名空间和生成的DLL命名要一致,否则导致注册不成功! 2.主控台的查询分析工具,添加sql直接报表,代码用到临时表,提示“在对应所需名称或序数的集合中未找到项目” 解决:在代 ...
- 【问题记录系列】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 ...
- 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 ...
- java(6) ArrayList源码
系统环境: JDK 1.7 成员变量 //默认的初始化数组大小 private static final int DEFAULT_CAPACITY = 10; //空的对象数组 private sta ...