37pts求助!!!
查看原帖
37pts求助!!!
1200603
define楼主2024/7/9 20:34
#include<bits/stdc++.h>
using namespace std;
int n,m;
struct b
{
	int l,r;
	int w;
}a[2000005];
bool cmp(b x,b y)
{
	return x.w<y.w; 
}
int f[500001];
int find(int x)
{
	if(f[x]==x) return x;
	return f[x]=find(f[x]);
}
signed main()
{
	ios::sync_with_stdio(false);
	cin>>n>>m;
	for(int i=1;i<=n;i++) f[i]=i;
	for(int i=1;i<=m;i++)
		cin>>a[i].l >>a[i].r >>a[i].w ;
	sort(a+1,a+m+1,cmp);
	int k=0;
	for(int i=1;i<=n;i++)
	{
		if(find(a[i].l)==find(a[i].r)) continue;
		f[find(a[i].l)]=find(a[i].r);
		k+=a[i].w;
	}
	int l=0;
	for(int i=1;i<=n;i++) if(find(i)==i) l++;
	if(l>1) cout<<"orz";
	else cout<<k;
	return 0;
}
2024/7/9 20:34
加载中...