举杯消愁愁更愁,月底账单入水流 • 8个月前
#include<bits/stdc++.h>
using namespace std;
struct shop{
int x,y;
}d[105];
struct road{
int l,r; //起点编号,终点编号
double k; //路径距离
}el[1005];
double exc(shop a,shop b){
return sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2));
}
double dis[105]; //距s距离
int main(){
int n,m,s,t;
cin>>n;
for(int i=1;i<=n;i++){
cin>>d[i].x>>d[i].y;
}
cin>>m;
for(int i=0;i<m;i++){
cin>>el[i].l>>el[i].r;
el[i].k=exc(d[el[i].l],d[el[i].r]);
}
cin>>s>>t;
for(int i=1;i<=n;i++) dis[i]=114514.0; //初始化
dis[s]=0.0; //到自己距离为0
for(int i=0;i<n-1;i++){
for(int j=0;j<m;j++){
dis[el[j].r]=min(dis[el[j].r],dis[el[j].l]+el[j].k);
dis[el[j].l]=min(dis[el[j].l],dis[el[j].r]+el[j].k);
}
}
printf("%.2f",dis[t]);
return 0;
}
评论:
请先登录,才能进行评论