10分求助
查看原帖
10分求助
1034698
jzy_CSPJ_AK楼主2024/12/9 16:09
#include<bits/stdc++.h>
using namespace std;

const int N = 1e5 + 5, M = 1e5 + 5;

struct Node{
	int x, y, z;
}a[M];
int fa[N], n, m;

bool cmp(Node u, Node v){
	return u.z > v.z;
}
int find(int k){
	return (fa[k] == k) ? k : fa[k] = find(fa[k]);
}

int main(){
	cin >>n >> m;
	int nn = n * 2;
	for(int i = 1;i <= nn;i ++)fa[i] = i;
	for(int i = 1;i <= m;i ++)cin >> a[i].x >> a[i].y >> a[i].z;
	sort(a + 1, a + 1 + n, cmp);
	for(int i = 1; i <= m; i ++) {
	    int xx = find(a[i].x), yy = find(a[i].y);
		if(xx == yy){
			cout << a[i].z;
			return 0;
		}
		fa[yy] = find(a[i].x + n);
		fa[xx] = find(a[i].y + n);
		
	}
	cout << 0;
	return 0;
}

只有第一个测试点a了,大佬们求助qwq

2024/12/9 16:09
加载中...