1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; const int N=110,M=210; struct Edge{ int a,b,w; bool operator<(const Edge& W)const { return w<W.w; } }e[M]; int p[N]; int find(int x) { if(x!=p[x]) { p[x]=find(p[x]); } return p[x]; } int main() { int n,m; cin>>n>>m; for(int i=1;i<=n;i++) { p[i]=i; } for(int i=1;i<=m;i++) { int a,b,w; cin>>a>>b>>w; e[i]={a,b,w}; } sort(e+1,e+1+m); int res=0; for(int i=1;i<=m;i++) { int pa=find(e[i].a); int pb=find(e[i].b); if(pa!=pb) { p[pa]=pb; } else { res+=e[i].w;//之前已经连通,需要去掉 } } cout<<res; return 0; }
- 1
信息
- ID
- 739
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者