60蒟蒻求助大佬
查看原帖
60蒟蒻求助大佬
189774
氢离子已超标楼主2020/7/17 11:04

编译时有警告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

2020/7/17 11:04
加载中...