#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 模板
最新推荐文章于 2023-03-08 19:24:20 发布