90分求助
查看原帖
90分求助
892625
WangYinxiAlex楼主2024/4/4 11:54
#include<iostream>
#include<algorithm>
using namespace std;
struct t{
	int x;
	int y;
	int time;
}a[100001];
int tf[10001];
int n,m;
bool cmp(t u,t v){
	return u.time<v.time;
}
int grandpa(int v){
	if(tf[v]==v)return v;
	return grandpa(tf[v]);
}
void hb(int u,int v){
	int tu=grandpa(u);
	int tv=grandpa(v);
	//cout<<tu<<">"<<tv<<endl;
	tf[tu]=tv;
}
bool add(){
	int temp=0;
	for(int i=0;i<m;i++){
		if(tf[i]==i)temp++;
		if(temp>1)return false;
	}
	return true;
}
int main(){
	cin>>n>>m;
	for(int i=0;i<m;i++)cin>>a[i].x>>a[i].y>>a[i].time;
	for(int i=0;i<n;i++)tf[i]=i;
	sort(a,a+m,cmp);
	for(int i=0;i<m;i++){
		if(add()){
			cout<<a[i-1].time<<endl;
			return 0;
		}
		hb(a[i].x,a[i].y);
	}
	cout<<-1<<endl;
	return 0;
}
2024/4/4 11:54
加载中...