您的位置:首页 > 其它

【wikioi】1078最小生成树 prim 100分C源码

2013-12-16 21:51 302 查看
#include<stdio.h>
#include<stdlib.h>

#define INF 120000
#define MAXV 110

int main(void)
{
int i,j;
int k;
int vis[MAXV]={0},v[MAXV][MAXV];
int n;
int min,minpos;
int ans;

scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&v[i][j]);
if(!v[i][j])
v[i][j]=INF;
}
}

k=1,vis[0]=1,min=INF,ans=0;

while(k<n)
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if((vis[i]==0) && (vis[j]==1) && (v[j][i]<min))
{
min=v[j][i];
minpos=i;
}
}
}
ans+=min;
vis[minpos]=1;
k++;
min=INF;
}
printf("%d\n",ans);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 c prim