1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int n,m,f[200],ans,x,sum; struct g { int from,to,val; }l[20010]; bool cmp(g a, g b) { return a.val<b.val; } int find(int x) { if (f[x]==x) return x; else return f[x]=find(f[x]); } void Kuskal() { int a,b; sort(l+1,l+1+m,cmp); for (int i=1; i<=m; i++) { a=find(l[i].from); b=find(l[i].to); if (a==b) continue; sum+=l[i].val; f[a]=b; x++; if (x==n) return; } } int main(){ int i; cin>>n>>m; for (i=1; i<=n; i++) { f[i]=i; } for (i=1; i<=m; i++) { scanf("%d%d%d",&l[i].from,&l[i].to,&l[i].val); ans+=l[i].val; } Kuskal(); printf("%d",ans-sum); return 0; }
- 1
信息
- ID
- 6853
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- 递交数
- 2
- 已通过
- 2
- 上传者