ZOJ 1924 Frogger
2014-03-06 20:44
337 查看
一条路径中,点到点之间最大的长度。求所有路径中最小的那个
#include<iostream>
#include<cstdio>
#include<cmath>
#include<string.h>
using namespace std;
const int N=205;
int x
,y
,visit
;
double mp
,d
;
double dist(int i,int j){
double rst=(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]);
return sqrt(1.0*rst);
}
double dijkstra(int n){
double rst=0;
memset(visit,0,sizeof visit);
for(int i=1;i<n;i++){
d[i]=mp[0][i];
//printf("%lf %lf\n",d[i],mp[0][i]);
}
visit[0]=1;
for(int p=1;p<n;p++){
int tmin=1e9,loc;
for(int i=0;i<n;i++){
if(!visit[i]&&d[i]<tmin)
tmin=d[i],loc=i;
}
visit[loc]=1;
//printf("d[%d]=%.lf\n",loc,d[loc]);
rst=max(rst,d[loc]);
if(loc==1)
return rst;
for(int i=0;i<n;i++){
if(visit[i]) continue;
if(mp[loc][i]<d[i])
d[i]=mp[loc][i];
}
}
}
int main(){
int n,cases=1;
while(cin>>n&&n){
for(int i=0;i<n;i++)
scanf("%d %d",&x[i],&y[i]);
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
mp[i][j]=mp[j][i]=dist(i,j);
printf("Scenario #%d\n",cases++);
printf("Frog Distance = %.3lf\n\n",dijkstra(n));
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<cmath>
#include<string.h>
using namespace std;
const int N=205;
int x
,y
,visit
;
double mp
,d
;
double dist(int i,int j){
double rst=(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]);
return sqrt(1.0*rst);
}
double dijkstra(int n){
double rst=0;
memset(visit,0,sizeof visit);
for(int i=1;i<n;i++){
d[i]=mp[0][i];
//printf("%lf %lf\n",d[i],mp[0][i]);
}
visit[0]=1;
for(int p=1;p<n;p++){
int tmin=1e9,loc;
for(int i=0;i<n;i++){
if(!visit[i]&&d[i]<tmin)
tmin=d[i],loc=i;
}
visit[loc]=1;
//printf("d[%d]=%.lf\n",loc,d[loc]);
rst=max(rst,d[loc]);
if(loc==1)
return rst;
for(int i=0;i<n;i++){
if(visit[i]) continue;
if(mp[loc][i]<d[i])
d[i]=mp[loc][i];
}
}
}
int main(){
int n,cases=1;
while(cin>>n&&n){
for(int i=0;i<n;i++)
scanf("%d %d",&x[i],&y[i]);
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
mp[i][j]=mp[j][i]=dist(i,j);
printf("Scenario #%d\n",cases++);
printf("Frog Distance = %.3lf\n\n",dijkstra(n));
}
return 0;
}
相关文章推荐
- 苹果新专利:照片可自动生成3D地图街景
- qt使用动态库(DLL)
- jdk环境变量配置问题
- Win7承载网络配置——让你的手机无线上网吧
- Linux软连接和硬链接
- 学习记2
- 使用 c3p0 连接池 改造 jdbcutils工具类
- Matlab 生成图形复制到word
- Logic-算法-分金条/五个好朋友分苹果
- 阵列盘安装操作系统
- 漂亮的正多面体
- C++虚函数和纯虚函数
- 21.点阵实验
- 第七章 物理引擎
- 【C++】PAT(advanced level)1056. Mice and Rice (25)
- 语音特征参数MFCC提取过程详解
- Hadoop TeraSort算法之2-trie树构造时间解惑
- Initializer block.
- Hibernate 事件监听
- linux下clang+llvm3.3安装(ubuntu)