#include
#include
using namespace std;
int map[105][105],n,m;
int v[55]={0},a[55];
void prim(){
int val=0,num=1,i,j,min,begin,end;
a[0]=1;
if(num==n){
printf("%d\n",val);
}
else{
while(num
min=1000;
for(i=0;i
for(j=2;j
if(!v[j]&&min>map[a[i]][j]){
min=map[a[i]][j];
end=j;
}
}
}
v[j]=1;
a[num]=j;
num++;
val+=min;
}
}
}
int main(){
int i,begin,end,value;
while(scanf("%d %d",&n,&m)&&n!=0){
for(i=1;i<=m;i++){
scanf("%d %d %d",&begin,&end,&value);
if(!map[begin][end]&&!map[end][begin]){
map[begin][end]=value;
map[end][begin]=value;
}
if(value<map[begin][end]){
map[end][begin]=map[begin][end]=value;
}
}
//printf("%d",map[2][1]);
prim();
}
return 0;
}
运行完没有结果...