求助为什么不对
查看原帖
求助为什么不对
316672
fnoi19lrz楼主2024/8/11 13:00
#include<bits/stdc++.h>
using namespace std;
int ans,n,m,num;
const int A=100000;
int fa[A];

struct node{
	int x,y,t;
};
node e[A];
bool cmp(node a,node b){
	return a.t<b.t;
}
int find(int x){
	if(fa[x]!=x)fa[x]=find(fa[x]);
	return fa[x];
}
int main(){
	ans=0;num=0;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;++i)fa[i]=i;
	for(int i=1;i<=m;++i){
		scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].t);
	}
	sort(e+1,e+m+1,cmp);
	for(int i=1;i<=m;++i){
		int x1=find(e[i].x);
		int y1=find(e[i].y);
		if(x1!=y1){
			fa[x1]=y1;
			ans=max(ans,e[i].t);num++;
		}
	}
	if(num<n-1){
		printf("-1");
	}else printf("%d",ans);
	return 0;
}
2024/8/11 13:00
加载中...