RE了
查看原帖
RE了
1110255
ZXR20101209楼主2024/8/7 16:12
#include<bits/stdc++.h>
using namespace std;
pair<long long,pair<long long,long long>>p[200005];
long long n,m,fa[200005];
int find(int x)
{
	return fa[x]==x?x:fa[x]=find(fa[x]);
}
int unite(int x,int y)
{
	fa[find(x)]=find(y);
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>p[i].second.first>>p[i].second.second>>p[i].first;
	}
	sort(p+1,p+m+1);
	int ans=0,cnt=0;
	for(int i=1;i<=n;i++)fa[i]=i;
	for(int i=1;i<=m;i++)
	{
		if(find(p[i].second.first)==find(p[i].second.second)) continue;
		else
		{
			unite(p[i].second.second,p[i].second.first);
			++cnt;
			ans+=p[i].first;
		}
	}
	if(cnt!=n-1)cout<<"orz"<<endl;
	else cout<<ans<<endl;
}
2024/8/7 16:12
加载中...