报错了,救救孩子
查看原帖
报错了,救救孩子
543953
slipknot楼主2022/7/26 15:05
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int n,m,sum=0;
int f[114514];
struct huh{
	int u,v,w;
};
vector<huh> a;
int find(int v)
{
	if(f[v]==v)
	{
		return v;
	}
	else
	{
		f[v]=find(f[v]);
		return v;
	}
}

void hebing(int u,int v)
{
	int t1,t2;
	t1=find(u);
	t2=find(v);
	if(t1!=t2)
	{
		f[v]=t1;
	}
}

int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int x,y,z;
		cin>>x>>y>>z;
		a.push_back(huh{x,y,z});
	}
	sort(a.front().w,a.back().w);
	for(int i=1;i<=n;i++)
	{
		f[i]=i;
	}
	for(int i=0;i<m;i++)
	{
		if(find(a[i].u)!=find(a[i].v))
		{
			hebing(a[i].u,a[i].v);
			sum+=a[i].w;
		}
		else continue;
	}
	cout<<sum;
	
	
	
	return 0;
}
2022/7/26 15:05
加载中...