最小生成树(prim算法)模板

来源:互联网 发布:spyder导入tensorflow 编辑:程序博客网 时间:2024/05/16 02:22
#include<cstdio>#include<cstring>#include<iostream>#include<cstdlib>using namespace std;int map[5001][5001],dis[5001]; bool p[5001];int main(){#ifndef ONLINE_JUDGEfreopen("prim.in","r",stdin);freopen("prim.out","w",stdout);#endifint i,j,k,m,n,a,b,c,flag;scanf("%d%d",&n,&m);memset(map,127,sizeof(map));for(i=1;i<=m;i++){scanf("%d%d%d",&a,&b,&c);map[a][b]=min(map[a][b],c);map[b][a]=min(c,map[b][a]);}memset(dis,127,sizeof(dis));dis[1]=0;for(int _=1;_<=n;_++){k=0;for(j=1;j<=n;j++)if(!p[j] && dis[j]<dis[k])k=j;if(!k)flag=1;p[k]=1;for(j=1;j<=n;j++)if(!p[j] && map[k][j]<dis[j] )dis[j]=map[k][j];}if(!flag){for(i=1;i<=n;i++)flag+=dis[i];printf("%d\n",flag);}elinput

数据

5 18
2 4 276
3 3 435
3 4 608
2 4 860
1 2 318
1 3 547
5 4 419
2 5 98
1 5 460
5 3 399
3 5 240
3 2 733
3 3 903
4 2 909
5 2 206
3 4 810
2 1 115
2 3 419

729

0 0
原创粉丝点击