数据过水
查看原帖
数据过水
1252892
zyc20130505楼主2025/1/22 10:53
#include<bits/stdc++.h>
using namespace std;
int n,m,f[100005],ans,k,sum=1;
struct data{
	int x,y,z;
}a[100005];
bool cmp(data a,data b){
	return a.z<b.z;
}
int find(int a){
	return a==f[a]?a:f[a]=find(f[a]);
}
void bing(int a,int b){
	f[find(a)]=f[find(b)];
}
int main(){
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++){
		f[i]=i;
	}
	for(int i=1;i<=m;i++){
		cin>>a[i].x>>a[i].y>>a[i].z;
	}
	long long sum=n;
	sort(a+1,a+1+m,cmp);
	for(int i=1;i<=m;i++){
		if(find(a[i].x)!=find(a[i].y)){
			bing(a[i].x,a[i].y);
			sum--;
			ans+=a[i].z;
		}
		if(sum<=k){
			cout<<ans;
			return 0;
		}
	}
	return 0;
}

(忘写cout<<"No Answer"了) 但是AC了

2025/1/22 10:53
加载中...