kruskal,10pts,求助!
查看原帖
kruskal,10pts,求助!
907430
corner_xiejunqi楼主2024/10/11 22:09
#include<bits/stdc++.h>
//using namespace std;
//#define double long double
//int n;
//struct node{
//	double x,y,u;
//}e[2500000];
//int m=0;
//double x[5001],y[5001];
//int fa[5001];
//double len(double x1,double y1,double x2,double y2){
//	return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
//}
//bool cmp(node a,node b){
//	return a.u<b.u;
//}
//int find(int a){
//	if(fa[a]==a) return a;
//	else return fa[a]=find(fa[a]);
//}
//bool merge(int a,int b){
//	int t1=find(a);
//	int t2=find(b);
//	if(a!=b){
//		fa[a]=b;
//		return true;
//	}
//	return false;
//}
//int main(){
//	//1、声明变量,输入
//	cin>>n;
//	for(int i=1;i<=n;i++){
//		fa[i]=i;
//	}
//	for(int i=1;i<=n;i++){
//		cin>>x[i]>>y[i];
//	}
//	for(int i=1;i<=n;i++){
//		double uy,minn=0x3f3f3f3f;
//		for(int j=i+1;j<=n;j++){
//			if(len(x[i],y[i],x[j],y[j])<minn){
//				minn=len(x[i],y[i],x[j],y[j]);
//				uy=j;
//			}
//		}
//		e[++m].x=i;
//		e[m].y=uy;
//		e[m].u=minn;
//	}
//	//2、计算过程
//	sort(e+1,e+1+m,cmp);
//	int cnt=0;
//	double ans=0;
//	for(int i=1;i<=m;i++){
//		if(merge(int(e[i].x),int(e[i].y))){
//			cnt++;
//			ans+=e[i].u;
//		}
//		if(cnt==n-1){
//			cout<<fixed<<setprecision(2)<<ans;
//			break;
//		}
//	}
//	//3、输出
//	
//	return 0;
//}
2024/10/11 22:09
加载中...