shortestPath
来源:互联网 发布:内涵段子网站源码 编辑:程序博客网 时间:2024/05/19 05:04
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
double dist[205][205],value[205];
int visited[205],path[205],s[205][2];
double distance(double x1,double y1,double x2,double y2)
{
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main()
{
int i,j,n,count=0;
while(cin>>n)
{
if(n==0)break;
count++;
memset(s,0,sizeof(s));
memset(dist,0,sizeof(dist));
for(i=1;i<=n;i++)
{
cin>>s[i][0]>>s[i][1];
}
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
{
if(i==j)dist[i][j]=0;
else dist[i][j]=dist[j][i]=distance(s[i][0],s[i][1],s[j][0],s[j][1]);
}
visited[1]=1;
path[1]=-1;
for(i=2;i<=n;i++)
{
value[i]=dist[1][i];
path[i]=1;
visited[i]=0;
}
value[1]=0.0;
double mindist;
for(i=1;i<n;i++)
{
mindist=9999999.0;
int u;
for(j=2;j<=n;j++)
{
if(value[j]<mindist&&!visited[j])
{
mindist=value[j];
u=j;
}
}
visited[u]=1;
for(j=2;j<=n;j++)
{
if(mindist + dist[u][j]<value[j]&&!visited[j])
{
value[j]=mindist + dist[u][j];
path[j]=u;
}
}
}
cout<<showpoint<<fixed<<setprecision(3);
cout<<"Scenario #"<<count<<endl;
cout<<"Frog Distance = "<<value[2]<<endl;
cout<<endl;
}
return 0;
}
#include<iomanip>
#include<cmath>
using namespace std;
double dist[205][205],value[205];
int visited[205],path[205],s[205][2];
double distance(double x1,double y1,double x2,double y2)
{
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main()
{
int i,j,n,count=0;
while(cin>>n)
{
if(n==0)break;
count++;
memset(s,0,sizeof(s));
memset(dist,0,sizeof(dist));
for(i=1;i<=n;i++)
{
cin>>s[i][0]>>s[i][1];
}
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
{
if(i==j)dist[i][j]=0;
else dist[i][j]=dist[j][i]=distance(s[i][0],s[i][1],s[j][0],s[j][1]);
}
visited[1]=1;
path[1]=-1;
for(i=2;i<=n;i++)
{
value[i]=dist[1][i];
path[i]=1;
visited[i]=0;
}
value[1]=0.0;
double mindist;
for(i=1;i<n;i++)
{
mindist=9999999.0;
int u;
for(j=2;j<=n;j++)
{
if(value[j]<mindist&&!visited[j])
{
mindist=value[j];
u=j;
}
}
visited[u]=1;
for(j=2;j<=n;j++)
{
if(mindist + dist[u][j]<value[j]&&!visited[j])
{
value[j]=mindist + dist[u][j];
path[j]=u;
}
}
}
cout<<showpoint<<fixed<<setprecision(3);
cout<<"Scenario #"<<count<<endl;
cout<<"Frog Distance = "<<value[2]<<endl;
cout<<endl;
}
return 0;
}
- shortestPath
- ShortestPath
- PTA ShortestPath[4]
- PTA ShortestPath[3]
- POJ 3295 Wormholes (ShortestPath.Bellman-Ford)
- 关于最短路径ShortestPath的几种算法
- CF 一个不知道题号的题。。 B. ShortestPath Query
- 迷宫最短路径问题(ShortestPath)的求解——利用链式队列
- 【codeforce Gym 100570B】【最短路SPFA】 ShortestPath Query 【询问单源最短路径,每条边有一个颜色,要求路径上相邻边的颜色不能相同】
- 从C到C++——结构体(struct)的涅槃
- linux,windows共享文件夹互访
- js弹出子窗口提交表单后刷新父窗口showModealDialog
- FPGA verilog 实现的1602 时钟计数器
- kmp算法
- shortestPath
- 程序员杂谈
- HttpClient 多线程处理
- SpringMVC入门之普通配置篇
- POJ-1552
- 数据结构-----哈夫曼树的构造以及遍历
- C++面试宝典2011版
- 忙忙忙
- struts2学习笔记(三) Action(上)