在信友队能AC在锣鼓84

题目传送门
题面:



代码:

#include <bits/stdc++.h>
#define int long long
using namespace std;
int fa[200001],n,m,ans=0,eu,ev,cnt=0;
struct Node
{
	int u,v,w;
}e[200001];
bool cmp(Node x,Node y)
{
	return x.w<y.w;
}
int find(int x)
{
	if(fa[x]==x)
	{
		return x;
	}
	return fa[x]=find(fa[x]);
}
signed main() {
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		fa[i]=i;
	}
	for(int i=1;i<=m;i++)
	{
		cin>>e[i].u>>e[i].v>>e[i].w;
	}
	sort(e+1,e+m+1,cmp);
	for(int i=1;i<=m;i++)
	{
		eu=find(e[i].u);
		ev=find(e[i].v);
		if(eu==ev)
		{
			continue;
		}
		ans+=e[i].w;
		fa[ev]=eu;
		if(++cnt==n-1)
		{
			break;
		}
	}
    if(ans==0)
    {
        cout<<"orz"<<endl;
        return 0;
    }
	cout<<ans<<endl;
	return 0;
}

orz情况判断不对

应该是find每个点,然后看看他们的结果相不相同