poj1258_最小生成树

来源:互联网 发布:linux tail -f 编辑:程序博客网 时间:2024/06/06 07:34

poj1258题目链接

#include<stdio.h>#include<string.h>#define inf 0x3f3f3fint map[105][105];int dis[105];bool  vis[105];int main(){int i,j,n,sum,count;while(~scanf("%d",&n)){memset(dis,0x3f,sizeof(dis));memset(vis,0,sizeof(vis));for(i=0;i<n;i++)        for(j=0;j<n;j++)            scanf("%d",&map[i][j]);       count=0;sum=0;vis[1]=1;count++;for(i=0;i<n;i++){dis[i]=map[1][i];}while(count<n){int min=inf;for(i=0;i<n;i++){if(!vis[i]&&dis[i]<min){j=i;min=dis[i];}}vis[j]=1;count++;sum+=dis[j];for(i=0;i<n;i++){if(!vis[i]&&dis[i]>map[j][i])    dis[i]=map[j][i];}} printf("%d\n",sum);    }return 0;}


0 0
原创粉丝点击