#include<stdio.h> int main() { int n,m; while(~scanf("%d",&n)&&n) { int i,j,k,min,t1,t2,t3,a[110][110]; int e[110][110],dis[110],book[110]= {0}; int inf=999999999; int count=0,sum=0; for(i=1; i<=n; i++) for(j=1; j<=n; j++) if(i==j)e[i][j]=0; else e[i][j]=inf; for(i=1; i<=n; i++) { for(j=1;j<=n;j++) { scanf("%d",&a[i][j]); e[i][j]=a[i][j]; } } for(i=1; i<=n; i++) dis[i]=e[1][i]; book[1]=1; count++; while(count<n) { min=inf; for(i=1; i<=n; i++) { if(book[i]==0&&dis[i]<min) { min=dis[i]; j=i; } } book[j]=1; count++; sum+=dis[j]; for(k=1; k<=n; k++) { if(book[k]==0&&dis[k]>e[j][k]) dis[k]=e[j][k]; } }printf("%d\n",sum); } }
Prim 模板
猜你喜欢
转载自blog.csdn.net/guoshuyan12/article/details/75268614
今日推荐
周排行