Prim 模板

来源:互联网 发布:免费下载绘图软件 编辑:程序博客网 时间:2024/06/08 10:46
#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);    }}

原创粉丝点击