哪里错了???
查看原帖
哪里错了???
1086735
LYQ_666楼主2024/5/3 21:43
#include <bits/stdc++.h> 
using namespace std;
int anc[10001],sum,ans,n,m;
struct E
{
	int u,v,w;
}e[10000];
bool c(E a,E b)
{
	return a.w<b.w;
}
int F(int x)
{
	if(anc[x]!=x) anc[x]=F(anc[x]);
	return anc[x];
}
int main()
{ 
	cin>>n>>m;
	for(int i=0;i<m;i++)
	{
		cin>>e[i].u>>e[i].v>>e[i].w;
	}
    sort(e,e+m,c);
    for(int i=1;i<=n;i++)
    {
    	anc[i]=i;
	}
	for(int i=0,fa,fb;i<m;i++)
	{	
		fa=F(e[i].u);
		fb=F(e[i].v);
		if(fa!=fb)
		{
		anc[fa]=fb;
		ans=ans+e[i].w;
		sum++;	
		}
		if(sum==n-1) break;
	}
	if(sum==n-1) cout<<ans;
	else cout<<"orz";
	return 0;
}
2024/5/3 21:43
加载中...