觉得没问题啊,只有30分求助
查看原帖
觉得没问题啊,只有30分求助
231769
忘れ潮楼主2020/9/15 13:13
#include <bits/stdc++.h>
using namespace std;
int m, n, ans, e[100005], fa[100005];
struct node{
	int x, y, t;
}a[100005];
int find(int x){
	return x == fa[x] ? x : fa[x] = find(fa[x]); 
}
bool cmp(node xx, node yy){
	return xx.t > yy.t;
}
int main(){
	scanf("%d%d", &m, &n);
	for(int i = 1; i <= n; i++)
		scanf("%d%d%d", &a[i].x, &a[i].y, &a[i].t);
	for(int i = 1; i <= m; i++)
		fa[i] = i;
	sort(a + 1, a + n + 1, cmp);
	for(int i = 1; i <= n; i++){
		if(find(a[i].x) == find(a[i].y)){
			printf("%d", a[i].t);
			return 0;
		}
		if(!e[a[i].x]) e[a[i].x] = a[i].y;
		else fa[find(e[a[i].x])] = find(a[i].y);
		if(!e[a[i].y]) e[a[i].y] = a[i].y;
		else fa[find(e[a[i].y])] = find(a[i].x);
	}
	printf("0");
	return 0;
} 
2020/9/15 13:13
加载中...