123456
  • 板块灌水区
  • 楼主lixize0703
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/7/17 09:33
  • 上次更新2024/7/17 10:04:41
查看原帖
123456
984216
lixize0703楼主2024/7/17 09:33
#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,t,f[5100];
struct node{
	int x,y,z;
}a[210000];
long long ans;
bool cmp(node xx,node yy){
	return xx.z<yy.z;
}
int find(int aa){
	if(f[aa]==aa){
		return aa;
	}
	f[aa]=find(f[aa]);
	return f[aa];
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>a[i].x>>a[i].y>>a[i].z;
	}
	sort(a+1,a+1+m,cmp);
	for(int i=1;i<=n;i++) f[i]=i;
	for(int i=1;i<=m;i++){
		if(find(a[i].x)==find(a[i].y))continue;
		f[find(a[i].x)]=find(a[i].y);
		ans+=a[i].z;
	}
	for(int i=1;i<=n;i++){
		if(i==f[i])	t++;
	}
	if(t>1) cout<<"orz";
	else cout<<ans;
	return 0;
}
2024/7/17 09:33
加载中...