80分,求调;5,6wa
查看原帖
80分,求调;5,6wa
757101
junee楼主2023/11/12 21:37
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1010,M=1e4+10;
int p[N];
struct node{
	int a,b,v;
}e[M];
bool cmp(node a,node b){
	return a.v>b.v;
}
int find(int x){
	if(p[x]!=x)p[x]=find(p[x]);
	return p[x];
}
int n,m;
int res=0;
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int a,b,v;
		cin>>a>>b>>v;
		e[i]={a,b,v};
	}
	for(int i=1;i<=n;i++)p[i]=i;
	sort(e+1,e+1+m,cmp);
	for(int i=1;i<=m;i++){
		int a=find(e[i].a),b=find(e[i].b);
		if(a!=b){
			p[a]=b;
			res+=e[i].v;
		}
	}
	for(int i=1;i<=n;i++){
		if(p[i]!=p[1]){
			cout<<-1;
			return 0;
		}
	}
	cout<<res;
    return 0;
}
2023/11/12 21:37
加载中...