公路村村通 (30分)

#include<iostream>
#include<cstring>

#define maxn 1005
#define mm(a,x) memset(a,x,sizeof(a))
#define inf 0x3f3f3f3f

using namespace std;

int n,m;
int map[maxn][maxn];
int dist[maxn];
int vis[maxn];

int prim(){
   
	mm(dist,inf);
	dist[1]=0;
	int ans=0;
	for(int i=1;i<=n;i++){
   
		int u=-1,minn=inf;
		for(int j=1;j<=n;j++){
   
			if(!vis[j]&&dist[j]<minn){
   
				u=j;minn=dist[j];
			}
		}
		if(u==-1) break ;
		vis[u]=1; ans+=dist[u];
		for(int v=1;v<=n;v++){
   
			if(!vis[v]&&map[u][v]!=inf&&map[u][v]<dist[v]){
   
				dist[v]=map[u][v];
			}
		}
	}
	return ans;
}

int main(){
   
	cin>>n>>m;
	mm(map,inf);
	for(int i=1;i<=m;i++){
   
		int t1,t2,t3;cin>>t1>>t2>>t3;
		map[t1][t2]=map[t2][t1]=t3;
	}
	cout<<prim()<<endl;	
	return 0;
}```

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务