MLE?
查看原帖
MLE?
805617
zby0501_楼主2024/8/17 19:29
#include<bits/stdc++.h>
using namespace std;
const int N=510,M=250010;
int s,p,x[2][N],t=0,fa[N],sum;
double ans=0;
struct node{
	int x,y;
	double dis;
}a[M];
bool cmp(node x,node y){
	return x.dis<y.dis;
}
int find(int x){
	if(x==fa[x]) return fa[x];
	return fa[x]=find(x);
}
void Union(int x,int y){
	int fx=find(x),fy=find(y);
	fa[fx]=fy;
}
int main(){
	cin>>s>>p;
	for(int i=1;i<=p;++i) fa[i]=i;//?a
	for(int i=1;i<=p;++i) cin>>x[0][i]>>x[1][i];
	for(int i=1;i<=p;++i){
		for(int j=i+1;j<=p;++j){
			int b=x[0][i],c=x[1][i],d=x[0][j],e=x[1][j];
			a[++t].x=i;
			a[t].y=j;
			a[t].dis=sqrt((b-d)*(b-d)+(c-e)*(c-e));
		}
	}
	//for(int i=1;i<=t;++i) cout<<a[i].x<<" "<<a[i].y<<" "<<a[i].dis<<endl;
	sort(a+1,a+t+1,cmp);
	for(int i=1;i<=t;++i){
		int fx=find(a[i].x),fy=find(a[i].y);
		if(fx!=fy){
			ans=a[i].dis;
			Union(a[i].x,a[i].y);
			if(++sum>=p-s) break;
		}
	}
	printf("%.2lf",ans);
    return 0;
}

打注释的地方似乎有问题?

return value 3221225477

https://www.luogu.com.cn/record/173310353

2024/8/17 19:29
加载中...