求助,Prim
查看原帖
求助,Prim
821849
TFHS_arsc楼主2024/8/24 14:26

Prim,样例都不对QwQ求条

#include<iostream>
#include<cstring>
#include<vector>

using namespace std;

int n,m;
struct node{
	int v,w;
};
vector <node> g[10005];
int vis[10005],dis[10005];
int ans;

int main(){
	
	cin>>n>>m;
	for(int i=1,u,v,w;i<=m;i++){
		cin>>u>>v>>w;
		g[u].push_back((node){v,w});
		g[v].push_back((node){u,w});
	}
	memset(dis,0x3f,sizeof dis);
	int x=1,cnt=0;
	dis[1]=0;
	while(x){
		vis[x]=1;
		for(int i=0;i<g[x].size();i++){
			int v=g[x][i].v,w=g[x][i].w;
			if(dis[v]>w) dis[v]=w;
		}
		x=0;
		for(int i=1;i<=n;i++){
			if(!vis[i]&&dis[i]<0x3f3f3f3f){
				if(!x||dis[x]>dis[i]) x=i;
			}
		}
		if(x) cnt++;
		ans+=dis[x];
	}
	if(cnt<n-1) cout<<"orz";
	else cout<<ans;
	
	return 0;
}
2024/8/24 14:26
加载中...