RE求指点
查看原帖
RE求指点
1400677
xxb13968999687楼主2025/7/24 16:22
#include<bits/stdc++.h>
using namespace std;
struct node{int v,w;};
vector<node> G[50100];
int n,m,d[50100],vt[50100],sum;
int main(){
	//ios::sync_with_stdio(false); cin.tie(0);
	cin>>n>>m;
	for(int j=1;j<=n;j++){
		int x,y,z;
		cin>>x>>y>>z;
		G[x].push_back((node){y,z});
		G[y].push_back((node){x,z});
	}
	memset(d,0x3f,sizeof(d));
	vt[1]=1;
	for(int i=0;i<G[1].size();i++){
		int v=G[1][i].v,w=G[1][i].w;
		d[v]=min(d[v],w);
	}
	for(int j=1;j<=n-1;j++){
		int k=-1,mn=0x3f3f3f3f;
		for(int i=2;i<=n;i++){
			if(!vt[i]&&d[i]<mn){
				mn=d[i];
				k=i;
				sum+=d[k];
				vt[k]=1;
			}
		}
		for(int i=0;i<G[k].size();i++){
			int v=G[k][i].v,w=G[k][i].w;
			d[v]=min(d[v],w);
		}
	}
	cout<<sum;
    return 0;
}
2025/7/24 16:22
加载中...