悬关 最后一个点WA
查看原帖
悬关 最后一个点WA
750670
mini_plus楼主2025/7/21 16:52
#include<bits/stdc++.h>
using namespace std;
const long long N=2e5+10,INF=0x3f3f3f3f;
int n,m;
int f[N];
struct node{
	int a,b,c;
};
node p[N];
int find(int x){
	if(x!=f[x]){
		f[x]=find(f[x]);
	}
	return f[x];
}
bool cmp(node l,node r){
	return l.c<r.c;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int a,b,c;
		cin>>a>>b>>c;
		p[i]={a,b,c};
	}
	sort(p+1,p+1+m,cmp);
	for(int i=1;i<=n;i++){
		f[i]=i;
	}
	int ans=0;
	for(int i=1;i<=m;i++){
		int pa=find(p[i].a),pb=find(p[i].b);
		if(pa!=pb){
			ans+=p[i].c;
			f[pa]=pb;
		}
	}
	if(ans==0){
		cout<<"orz";
	}
	else{
		cout<<ans<<endl;	
	}
    return 0;
}




2025/7/21 16:52
加载中...