#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define ll long long
using namespace std;
//const int mod=;
#define INF 0x3f3f3f3f
const int maxn=1e6+10;
int n,t;
int mat[105][105];
bool vis[105];
int d[105];
int main(void){
while(cin >> n && n){
memset(d,INF,sizeof(d));
memset(vis,0,sizeof(vis));
memset(mat,0,sizeof(mat));
t = n*(n-1)/2;
int a,b,c;
while(t--){
cin >> a >> b >> c;
mat[a][b] = c;
mat[b][a] = c;
}
int ans = 0;
d[1] = 0;
for(int i=1; i<=n; i++){
int p = -1;
int mmin = INF;
for(int j=1; j<=n; j++){
if(!vis[j] && d[j]<mmin){
mmin = d[j];
p = j;
}
}
vis[p] = 1;
ans += mmin;
for(int j=1; j<=n; j++){
if(!vis[j] && d[j]>mat[p][j])
d[j] = mat[p][j];
}
}
cout << ans << endl;
}
return 0;
}
最小生成树——HDU1233
猜你喜欢
转载自blog.csdn.net/jhckii/article/details/104304004
今日推荐
周排行