怎么总是RE
查看原帖
怎么总是RE
1047636
_ScreamBrother_楼主2024/6/29 22:03

请大佬帮我看看我的代码哪里出了问题,提交了好几次,一直RE:

代码:

#include <bits/stdc++.h>
struct Edge {
	int u, v, w;
	bool operator < (Edge __a) { return w <  __a.w; } 
} G[200010];
int f[10010] = {}, ans, N, M, cnt;
int find(int x) { return x != f[x] ? (f[x] = find(f[x])) : x; }
int m(int x, int y) { f[find(x)] = find(y); }
bool q(int x, int y) { return find(x) == find(y); }   
int main() { 
	std::cin >> N >> M;
	for (int i = 1; i <= N; f[i] = i, i ++);
	for (int i = 1; i <= M; i ++) std::cin >> G[i].u >> G[i].v >> G[i].w;
	std::sort(G + 1, G + M + 1);
	for (int i = 1; i <= M; i ++) 
		if (!q(G[i].u, G[i].v)) { 
			ans += G[i].w, m(G[i].u, G[i].v), cnt ++;
			if (cnt == N - 1) break; 
		}
	ans != 0 ? std::cout << ans : std::cout << "orz";
	return 0;
}
2024/6/29 22:03
加载中...