只A一个点
查看原帖
只A一个点
760850
QWQ_jyc楼主2023/4/23 21:01
#include<bits/stdc++.h>
using namespace std;
int ff[100005];
struct s{
	int x,y,t;
}a[1000005];
int f(int v){
	if(ff[v]==v){
		return v;
	}else{
		return ff[v]=f(ff[v]);
	}
} 
bool uu(int x,int y){
	int u=f(x);
	int v=f(y);
	if(u!=v){
	  return true;	
	}
	ff[u]=v;
	return false;
}
bool cmp(s x,s y){
	 return x.t<y.t; 
}
int main(){
	long long n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		ff[i]=i;
	}
	for(int i=1;i<=m;i++){
		cin>>a[i].x>>a[i].y>>a[i].t;
	}
	sort(a+1,a+m+1,cmp);
	for(int i=1;i<=m;i++){
		if(uu(a[i].x,a[i].y)){
		  --n;
		  if(n==1){
			cout<<a[i].t;
			return 0;
		  }
		}
	}
	cout<<-1;
	return 0;
}
2023/4/23 21:01
加载中...