九度教程第71题
C语言源码:
[cpp]
#include<stdio.h>
#include<limits.h>
#define maxsize 100
int main()
{
int s[maxsize][maxsize],is[maxsize][2],n,a,b,len,i,j,min,fmin,f;
scanf("%d",&n);
while(n)
{
for(i=0;i<n;i++)
{
is[i][0]=0;
is[i][1]=INT_MAX;
for(j=0;j<n;j++)
s[i][j]=INT_MAX;
}
for(i=0;i<n*(n-1)/2;i++)
{
scanf("%d %d %d",&a,&b,&len);
s[a-1][b-1]=len;
s[b-1][a-1]=len;
}
is[0][0]=1;
len=0;
i=1;
fmin=0;
min=INT_MAX;
while(i<n)
{
for(j=0;j<n;j++)
if(is[j][0]==0)
{
if(s[fmin][j]<is[j][1])
is[j][1]=s[fmin][j];
if(is[j][1]<min)
{
f=j;
min=is[j][1];
}
}
fmin=f;
is[fmin][0]=1;
len+=min;
min=INT_MAX;
i++;
}
printf("%d\n",len);
scanf("%d",&n);
}
}
补充:软件开发 , C++ ,