标签:des blog http java 使用 strong
http://acm.hdu.edu.cn/showproblem.php?pid=1863
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 15980 Accepted Submission(s): 6627
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#define Maxint 1<<30
int n;
int map[105][105],low[105],visit[105];
int prim()
{
int i,j,pos=1,minn,sum=0;
memset(visit,0,sizeof(visit));
visit[pos]=1;
for(i=0;i<=n;i++)
{
if(i!=pos)
{
low[i]=map[pos][i];
//printf("%d",low[i]);
}
}
for(i=1;i<n;i++)
{
minn=Maxint,pos=-1;//判断是否连通
for(j=1;j<=n;j++)
{
if(visit[j]==0&&minn>low[j])
{
minn=low[j];
pos=j;
}
}
if(pos == -1)return -1;//不连通
visit[pos]=1;
sum+=minn;
for(j=1;j<=n;j++)
{
if(visit[j]==0&&low[j]>map[pos][j])
{
low[j]=map[pos][j];
}
}
}
return sum;
}
int main()
{
int i,j;
int m;
while(scanf("%d%d",&m,&n)!=EOF&&m!=0)
{
//memset(map,Maxint,sizeof(map));//这种初始化方式不行
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
map[i][j]=Maxint;
int a,b,c;
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&b,&c);
map[a][b]=map[b][a]=c;//无向图
}
int result=prim();//printf("%d^^",Maxint);
if(result!=-1)
printf("%d\n",result);
else
printf("?\n");
}
return 0;
}
hdu 1863 prim算法的使用,布布扣,bubuko.com
标签:des blog http java 使用 strong
原文地址:http://www.cnblogs.com/ccccnzb/p/3831732.html