kruskal全WA求助——
查看原帖
kruskal全WA求助——
190650
IcySugar楼主2020/11/6 23:51
#include <bits/stdc++.h>
using namespace std;
#define N 5005
#define M (int)2e5+5
int n, m, fa[N], ans, total;
struct edge{
	int u, v, w;
} g[M];
bool cmp(edge a, edge b){
	return a.w<b.w;
}
inline int find(int p){
	if(fa[p]==p) return p;
	return fa[p]=find(fa[p]);
} 
void kruskal(){
	for(register int i=1;i<=m;++i){
		int u, v;
		u = find(g[i].u); v = find(g[i].v);
		if(u==v) continue;
		fa[u] = v;
		ans+=g[i].w;
		++total;
		if(total==n-1) return;
	}
}
int main(){
	ios::sync_with_stdio(false);
	cin >> n >> m;
	for(register int i=1;i<=n;++i) fa[i] = i;
	for(register int i=1;i<=m;++i) cin >> g[i].u>>g[i].v>>g[i].w;
	sort(g+1, g+n+1, cmp);
	kruskal();
	cout << ans;
	return 0;
} 

全WA了,对了好几遍题解没找到哪里有问题,球球各位大佬帮忙了x

2020/11/6 23:51
加载中...