最小生成树(Kruskal算法)模板
2017-03-08 09:21
399 查看
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; #define MAX 100 int u[MAX];//边起始点 int v[MAX];//边终点 int w[MAX];//边权值 int p[MAX];//并查集 int r[MAX];//保存的边的序号 int n,m;//n是结点数,m是边个数 int cmp(const int i,const int j) { return w[i]<w[j]; } int find(int x) { return p[x]==x?x:p[x]=find(p[x]); } int Kruskal(){ int ans=0; for(int i=0;i<n;++i) p[i]=i; for(int i=0;i<m;++i) r[i]=i; sort(r,r+m,cmp); for(int i=0;**i<m**;++i)//循环变量的判断条件要注意下 { int e=r[i]; int x=find(u[e]); int y=find(v[e]); if(x!=y) { ans+=w[e]; p[x]=y; } } return ans; } int main() { int uu,vv,ww; cin>>n>>m; for(int i=0;i<m;++i) { cin>>uu>>vv>>ww; u[i]=uu; v[i]=vv; w[i]=ww; } cout<<Kruskal()<<endl; return 0; }
相关文章推荐
- 最小生成树(kruskal算法,模板)oj2144
- 最小生成树-Kruskal算法模板
- hdu1233最小生成树 kruskal算法模板
- 【HD 1233】还是畅通工程(最小生成树 Kruskal算法模板题)
- 最小生成树 kruskal算法(模板)
- 求解最小生成树的算法 kruskal算法(附模板)
- 最小生成树(MST)模板---Kruskal算法
- 【2018寒假集训Day 8】【最小生成树】Prim和Kruskal算法模板
- 最小生成树kruskal算法模板
- POJ 1861 Network (Kruskal算法+输出的最小生成树里最长的边==最后加入生成树的边权 *【模板】)
- Kruskal算法(图的最小生成树)(模板)
- [模板]最小生成树 kruskal算法
- HDU1233 还是畅通工程(最小生成树模板题,Prime,kruskal算法)
- 最小生成树(prim算法与kruskal算法)(模板)
- Hihocoder #1098 : 最小生成树二·Kruskal算法 ( *【模板】 )
- 最小生成树 kruskal算法模板
- 最小生成树-Kruskal算法(模板)
- 最小生成树-Kruskal算法(模板) 蓝桥杯 - 算法训练 - ALGO - 6 安慰奶牛(克鲁斯卡尔)
- 最小生成树Kruskal算法【模板】 与 并查集 例题:简单 poj 2485 Highways
- caioj1090·最小生成树(模板 Kruskal算法)