社区讨论

数据过水

P1195口袋的天空参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@m67b8z6v
此快照首次捕获于
2025/01/22 10:54
去年
此快照最后确认于
2025/11/04 11:04
4 个月前
查看原帖
CPP
#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了

回复

2 条回复,欢迎继续交流。

正在加载回复...