Kruskal最小生成树模板 发表于 2019-11-08 本文字数: 4.3k | 阅读时长 ≈ 4 分钟 Kruskal最小生成树模板 12345678910111213141516171819202122232425262728293031323334#include<bits/stdc++.h>using namespace std;int n,m,f[5001],ans,t;struct s{ int u,v,w;}e[200001];bool cmp(s a, s b){ return a.w<b.w;}int find(int find_x){ return (f[find_x]==find_x)?(find_x):(f[find_x]=find(f[find_x]));}int main(){ cin>>n>>m; for(int i=0;i<=n;i++) f[i]=i; for(int i=0;i<m;i++) cin>>e[i].u>>e[i].v>>e[i].w; sort(e,e+m,cmp); for(int i=0;i<m;i++){ int a=find(e[i].u); int b=find(e[i].v); if(f[a]!=f[b]){ f[a]=b; ans+=e[i].w; t++; } } if(t==n-1) cout<<ans; else cout<<"orz"; return 0;}