#include<stdio.h>
#include<string.h>
#define m 1000000
int dis[110],map[110][110],s[110];
int n,t;
void prim() {
int i,j;
memset(s,0,sizeof(s));
for(i=1;i<=n;i++)
dis[i]=map[1][i];
s[1]=1;
for(i=1;i<n;i++) {
int min=m,k;
for(j=1;j<=n;j++) {
if(s[j]==0&&dis[j]<min) {
min=dis[j];
k=j;
}
}
t+=min;
s[k]=1;
for(j=1;j<=n;j++) {
if(s[j]==0&&dis[j]>map[k][j])
dis[j]=map[k][j];
}
}
}
int main() {
int i,a,b,c;
while(scanf("%d",&n),n) {
memset(map,0,sizeof(map));
for(i=1;i<=(n*(n-1)/2);i++) {
scanf("%d%d%d",&a,&b,&c);
map[a][b]=map[b][a]=c;
}
t=0;
prim();
printf("%d\n",t);
}
return 0;
}
杭电1233还是畅通工程
最新推荐文章于 2021-03-02 00:03:38 发布