码迷,mamicode.com
首页 > Web开发 > 详细

poj1258Agri-Net 最小生成树prim

时间:2015-04-13 12:57:04      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:poj1258   poj 1258   

看了一上午才看懂~~渣渣学习中
#include <stdio.h>
#include <string.h>
#define inf 0x3fffffff
int visit[101],map[101][101],minpos[101],n;
int prim()
{
	int pos,t=0,ant=0,p,min;
	visit[0]=1;
	minpos[t++]=0;
	while(t<n)
	{
		min=inf;
		for(int i=0;i<t;i++)
		{
			p=minpos[i];
			for(int j=0;j<n;j++)
			{
				if(min>map[p][j]&&!visit[j])
				min=map[p][j],pos=j;
			}
		}
		ant+=min;
		minpos[t++]=pos;
		visit[pos]=1;
	}
	return ant; 
}
int main()
{
	int x;
	while(scanf("%d",&n)!=EOF)
	{
		memset(visit,0,sizeof(visit));
		memset(map,inf,sizeof(map));//map初始为最大值
		for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
		{
			scanf("%d",&x);
			map[i][j]=map[j][i]=x;
		}
		printf("%d\n",prim());
	}
}

poj1258Agri-Net 最小生成树prim

标签:poj1258   poj 1258   

原文地址:http://blog.csdn.net/su20145104009/article/details/45023221

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!