10分(大佬帮忙看看)
查看原帖
10分(大佬帮忙看看)
467178
cancer_3_26楼主2021/8/4 13:35
#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
long long n,m,f[200000];
struct node{
	long long x,y,t;
}a[200000];
int cmp(struct node a,struct node b){
	return a.t<b.t;
}
int find(int num){
	if(f[num]==num) return num;
	else return f[num]=find(f[num]);
}
int main(){
	scanf("%lld %lld",&n,&m);
	for(int i=1;i<=n;i++) f[i]=i;
	for(int i=1;i<=m;i++) scanf("%lld %lld %lld",&a[i].x,&a[i].y,&a[i].t);
	sort(a+1,a+m+1,cmp);
	for(int i=1;i<=m;i++){
		long long xx=find(a[i].x),yy=find(a[i].y);
		if(xx!=yy) f[xx]=yy;n--;
		if(n==1){
			printf("%lld",a[i].t);
			return 0;
		}
	}
	printf("-1");
	return 0;
}
2021/8/4 13:35
加载中...