Untitled
// ThonqRiu #include <bits/stdc++.h> #define endl '\n' #define maxn 50005 #define MOD 100000000000007 #define Task "bai1" #define ll long long using namespace std; int n,m,root[505],cnt; struct phuba{ int u,v,w; }; phuba a[maxn]; bool cmp(phuba &a, phuba &b){ return a.w < b.w; } int getRoot(int u){ if(root[u] == 0) return u; return(root[u] = getRoot(root[u])); } int main() { ios_base:: sync_with_stdio(0); cin.tie(nullptr); if(fopen(Task".inp","r")){ freopen(Task".inp","r",stdin); } cin >> n >> m; for(int k = 1; k<=m; k++){ cin >> a[++cnt].u >> a[cnt].v >> a[cnt].w; sort(a+1,a+cnt+1,cmp); fill(root+1,root+n+1,0); int ans = 0; cnt = 0; for(int i = 1; i<=n; i++){ int p = getRoot(a[i].u); int q = getRoot(a[i].v); if(p != q){ root[p] = q; ans += a[i].w; cnt++; a[cnt].u = a[i].u; a[cnt].v = a[i].v; a[cnt].w = a[i].w; } } if(cnt == n-1) cout << ans << endl; else cout << -1 << endl; } }
Leave a Comment