10pts求条咕咕
查看原帖
10pts求条咕咕
1446102
AZ23th楼主2025/7/29 21:35

我太蒻了QwQ

#include<bits/stdc++.h>
using namespace std;

int n,m,k;
int f[1002];

struct p
{
	int x,y,z;
}a[1002];

int find(int x)
{
	if(x==f[x])return f[x];
	return f[x]=find(f[x]);
}

bool cmp(p a,p b)
{
	return a.z<b.z;
}

int main()
{
	cin>>n>>m>>k;
	for(int i=1;i<=m;i++)
	{
		cin>>a[i].x>>a[i].y>>a[i].z;
	}
	for(int i=1;i<=m;i++)
	{
		f[i]=i;
	}
	sort(a+1,a+m+1,cmp);
	int sum=0;
	for(int i=1;i<=m;i++)
	{
		int fx=find(a[i].x);
		int fy=find(a[i].y);
		if(fx==fy)continue;
		f[fx]=fy;
		sum+=a[i].z;
		n--;
	}
	if(n<=k) cout<<sum;
	else cout<<"No Answer";
}
2025/7/29 21:35
加载中...