编译时有警告QAQ
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iomanip>
using namespace std;
int n,m,visit[1005];
long double mini[1005],dis[1005][1005];
struct node
{
int x,y;
}a[1000005];
long double Distance(int a,int b,int c,int d)
{
return sqrt((c-a)*(c-a)+(d-b)*(d-b));
}
int main()
{
int k1,k2;
long double ans=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
mini[i]=0x7fffffff;
for(int i=1;i<=n;i++)
cin>>a[i].x>>a[i].y;
for(int i=1;i<=n-1;i++)
for(int j=1+i;j<=n;j++)
{
dis[i][j]=dis[j][i]=Distance(a[i].x,a[i].y,a[j].x,a[j].y);
}
for(int i=1;i<=m;i++)
{
cin>>k1>>k2;
dis[k1][k2]=dis[k2][k1]=0;
}
int p=0;
mini[1]=0;
for(int i=1;i<=n;i++)
{
long double minn=0x7fffffff;
for(int j=1;j<=n;j++)
if(visit[j]==0&&mini[j]<minn)
minn=mini[j],p=j;
visit[p]=1;
ans+=minn;
for(int k=1;k<=n;k++)
{
if(visit[k]==0&&dis[p][k]<mini[k])
mini[k]=dis[p][k];
}
}
printf("%.2lf",ans);
return 0;
}
改了半天还是60分。。。 啊啊啊大佬帮忙改改QAQ