求助,0分
查看原帖
求助,0分
672757
封禁用户楼主2024/7/16 14:44
#include<bits/stdc++.h>
using namespace std;
int n,m,k,s,v;
int zz[1005];
struct lian
{
	int x,y,l;
}nn[10005];
bool cmp(lian a,lian b)
{
	if(a.l>b.l)
	{
		return true;
	}
	return false;
}
int find(int a){ 
	if(zz[a]==a)
	return a;
	else return zz[a]=find(zz[a]);
}
int main() 
{
	cin>>n>>m>>k;
	for(int i=1;i<=m;i++)
	{
		cin>>nn[i].x>>nn[i].y>>nn[i].l;
	}
	for(int i=1;i<=n;i++)
	{
		zz[i]=i;
	}
	sort(nn+1,nn+1+m,cmp);
	for(int i=1;i<=m;i++)
	{
		int a,b;
		a=find(nn[i].x);
		b=find(nn[i].y);
		if(a==b)
		{
			continue;
		}
		zz[a]=b;
		s+=nn[i].l;
		v++;
		if(v>=n-k)
		{
			cout<<s;
			return 0;
		}
	}
	printf("No Answer");
    return 0;
}
2024/7/16 14:44
加载中...