Poj(2253),Dijkstra松弛条件的变形
2024-08-29 12:19:13
题目链接: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 ;
}
最新文章
- jQuery省市区三级联动插件
- CSS技巧和经验:
- percona-xtrabackup备份mysql
- 闪回flashback
- 项目经验之:MVVM初学者图形化笔记整理。。。
- portal、portlet、portlet容器三个概念
- Android+struts2+JSON方式的手机开发(Login)
- Linq分组,linq方法分组
- Vue 项目实战系列 (三)
- java数据库编程之DAO模式
- awk骚操作
- WIN7 环境下搭建 PHP7(64 位)操作步骤
- 红包外挂史及AccessibilityService分析与防御
- Xcode 插件优缺点对照(推荐 20 款插件)
- 手动部署etcd-2018-0731
- R 语言的Dataframe常用操作
- 从零开始学习html(四)认识标签(第三部分)
- 《Spring1之第三次站立会议》
- mysql单表多timestamp报错#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
- Linux之 增加swap空间
热门文章
- linux e2fsprogs安装解决uuid/uuid.h: No such file or directory错误
- 暴力枚举-数长方形(hdu5258)
- hduoj 4715 Difference Between Primes 2013 ACM/ICPC Asia Regional Online —— Warmup
- Ejb: remote调用
- JSon_零基础_006_将JSon格式的字符串转换为Java对象
- java 控制器向页面传值方式
- [php/html/CSS]给Aptana3 安装 Emmet插件
- php file_get_contents与curl性能比较
- 八、Java基础---------基本语法
- string与char之间的互相转换