题目链接:http://poj.org/problem?id=2253

题意:

给出两只青蛙的坐标A、B,和其他的n-2个坐标,任一两个坐标点间都是双向连通的。显然从A到B存在至少一条的通路,每一条通路的元素都是这条通路中前后两个点的距离,这些距离中又有一个最大距离。

现在要求求出所有通路的最大距离,并把这些最大距离作比较,把最小的一个最大距离作为青蛙的最小跳远距离。

思路:

j从1,2,两条路中选取较小者,而1这条路,是s—>k—>j的最大步伐。

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <algorithm> using namespace std; #define INF 0x3f3f3f3f struct Point
{
double x;
double y;
} points[]; double maps[][];
bool vis[];
double dis[];
int n; void Dijkstra(int s)
{
memset(vis,false,sizeof(vis)); for(int i=;i<=n;i++)
dis[i] = maps[s][i]; vis[s] = true;
for(int i=;i<n;i++)
{
int k = ,tmp = INF;
for(int j=;j<=n;j++)
{
if(vis[j]) continue;
if(dis[j]<tmp)
{
tmp = dis[j];
k = j;
}
}
vis[k] = true; for(int j=;j<=n;j++)
{
if(vis[j]) continue;
dis[j] = min(dis[j],max(dis[k],maps[k][j]));
}
}
} int main()
{
int cases = ;
while(scanf("%d",&n),n)
{
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
maps[i][j] = INF; for(int i=; i<=n; i++)
scanf("%lf%lf",&points[i].x,&points[i].y); for(int i=; i<=n; i++)
{
for(int j=i+; j<=n; j++)
{
double tx = points[i].x - points[j].x;
double ty = points[i].y - points[j].y;
maps[i][j] = maps[j][i] = sqrt(tx*tx+ty*ty);
}
}
Dijkstra();
printf("Scenario #%d\nFrog Distance = %.3lf\n\n",cases++,dis[]);
}
return ;
}

最新文章

  1. jQuery省市区三级联动插件
  2. CSS技巧和经验:
  3. percona-xtrabackup备份mysql
  4. 闪回flashback
  5. 项目经验之:MVVM初学者图形化笔记整理。。。
  6. portal、portlet、portlet容器三个概念
  7. Android+struts2+JSON方式的手机开发(Login)
  8. Linq分组,linq方法分组
  9. Vue 项目实战系列 (三)
  10. java数据库编程之DAO模式
  11. awk骚操作
  12. WIN7 环境下搭建 PHP7(64 位)操作步骤
  13. 红包外挂史及AccessibilityService分析与防御
  14. Xcode 插件优缺点对照(推荐 20 款插件)
  15. 手动部署etcd-2018-0731
  16. R 语言的Dataframe常用操作
  17. 从零开始学习html(四)认识标签(第三部分)
  18. 《Spring1之第三次站立会议》
  19. mysql单表多timestamp报错#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
  20. Linux之 增加swap空间

热门文章

  1. linux e2fsprogs安装解决uuid/uuid.h: No such file or directory错误
  2. 暴力枚举-数长方形(hdu5258)
  3. hduoj 4715 Difference Between Primes 2013 ACM/ICPC Asia Regional Online —— Warmup
  4. Ejb: remote调用
  5. JSon_零基础_006_将JSon格式的字符串转换为Java对象
  6. java 控制器向页面传值方式
  7. [php/html/CSS]给Aptana3 安装 Emmet插件
  8. php file_get_contents与curl性能比较
  9. 八、Java基础---------基本语法
  10. string与char之间的互相转换