代码厌氧
查看原帖
代码厌氧
401641
_MJawa_楼主2022/4/17 18:11

RT,为什么?

#include<bits/stdc++.h>
const int N = 2e6 + 10;
const int M = 4e5 + 10;
const int MAX = 1e9 + 7;
const int fx[] = {0, 0, -1, 1};
const int fy[] = {1, -1, 0, 0};
//const long long MAX=1e18+17;
#define ull unsigned long long 
#define ll long long
#define ri register
#define il inline

int n, m;
struct Edge {
	int sta, end, w;
}edge[M];

bool cmp(Edge x, Edge y) {
	return x.w < y.w;
}
int fa[102];
int find(int x) {
	return fa[x] == x ? x : fa[x] = find(fa[x]);
}

signed main(){
	cin >> n >> m;
	for (int i = 1; i <= n; ++ i) {
		fa[i] = i;
	}
	for (int i = 1; i <= m; ++ i) {
		scanf("%d%d%d", &edge[i].sta, &edge[i].end, &edge[i].w);
	}
	sort(edge + 1, edge + 1 + m, cmp);
	int tag = 0, num = 0;
	for (int tmpx, tmpy, w, i = 1; tag < n - 1; ++ i) {
		tmpx = find(edge[i].sta);
		tmpy = find(edge[i].end);
		w = edge[i].w;
		if (tmpx == tmpy) {
			continue;
		}
		fa[tmpx] = tmpy;
		num = max(num, w);
		tag ++;
	}
	printf("%d %d", tag, num);
	return 0;
}
2022/4/17 18:11
加载中...