#3AC,其他全WA,并查集求助
查看原帖
#3AC,其他全WA,并查集求助
592238
Elairin176楼主2022/9/9 11:16

代码:

#include <iostream>
#include <algorithm>
using namespace std;
int n,m;
struct node{
	int t;
	int d;
	int x;
	int y;
}a[114514]; 
bool cmp(node a,node b){
	return a.d<b.d;
}
int find(int x){
	if(a[x].d==x){
		return x;
	}
	return a[x].d=find(a[x].d);
}
void h(int x,int y){
	int a1=find(x),a2=find(y);
	if(a1!=a2) a[a1].d=a2,n--;
}
int main(void){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		a[i].d=i;
	}
	for(int i=1;i<=m;i++){
		cin>>a[i].x>>a[i].y>>a[i].t;
	}
	sort(a+1,a+1+n,cmp);
	for(int i=1;i<=m;i++){
		h(a[i].x,a[i].y);
		if(n==1){
			cout<<a[i].t;
			return 0;
		}
	}
	cout<<"-1";
}
#include <iostream>
#include <algorithm>
using namespace std;
int n,m;
struct node{
	int t;
	int d;
	int x;
	int y;
}a[114514]; 
bool cmp(node a,node b){
	return a.d<b.d;
}
int find(int x){
	if(a[x].d==x){
		return x;
	}
	return a[x].d=find(a[x].d);
}
void h(int x,int y){
	int a1=find(x),a2=find(y);
	if(a1!=a2) a[a1].d=a2,n--;
}
int main(void){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		a[i].d=i;
	}
	for(int i=1;i<=m;i++){
		cin>>a[i].x>>a[i].y>>a[i].t;
	}
	sort(a+1,a+1+n,cmp);
	for(int i=1;i<=m;i++){
		h(a[i].x,a[i].y);
		if(n==1){
			cout<<a[i].t;
			return 0;
		}
	}
	cout<<"-1";
}
2022/9/9 11:16
加载中...