最小生成树 Kruskal 算法模板
来源:互联网 发布:湖南云箭集团知乎 编辑:程序博客网 时间:2024/05/22 04:47
/*Kruskal 算法 *注意:点是从1到n编号 *Ecnt = 0 */typedef int weight_t;const int SIZE_V = const int SIZE_E = int Father[SIZE_V];int Ecnt = 0;//int n; // 此处写点的全局变量//并查集算法void init(int vn){ for(int i = 0;i <= vn;++i) Father[i] = i;}int find(int x){ return (Father[x] == x) ? x : Father[x] = find(Father[x]);}inline void unite(int x,int y){ Father[find(y)] = Father[find(x)];}struct edge_t{ int s,e; weight_t w; friend bool operator < (edge_t const&a,edge_t const&b){ if (a.w != b.w) return a.w < b.w; if (a.s != b.s) return a.s < b.s; return a.e < b.e; }}Edge[SIZE_E];inline void mkEdge(int a,int b,weight_t w){ if (a > b)swap(a,b); Edge[Ecnt].s = a; Edge[Ecnt].e = b; Edge[Ecnt++].w = w;}weight_t Kruskal(int vn,int en){ init(vn); sort(Edge,Edge+en); weight_t ret = 0; for (int i = 0;i < en; ++i){ if ( find(Edge[i].s) == find(Edge[i].e)) continue; ret += Edge[i].w; unite(Edge[i].s,Edge[i].e); --vn; if (1 == vn)break; } return ret;}
0 0
- 最小生成树Kruskal算法模板
- 最小生成树-Kruskal算法模板
- hdu1233最小生成树 kruskal算法模板
- 最小生成树 Kruskal 算法模板
- 最小生成树-Kruskal算法(模板)
- 最小生成树(Kruskal算法)模板
- [模板]最小生成树 kruskal算法
- 最小生成树(prim算法与kruskal算法)(模板)
- 最小生成树-kruskal模板
- 最小生成树kruskal模板
- 【模板】最小生成树Kruskal
- 【模板】Kruskal 最小生成树
- 【模板】Kruskal 最小生成树
- 最小生成树-kruskal 模板
- Kruskal模板 最小生成树
- 最小生成树(kruskal算法,模板)oj2144
- caioj1090·最小生成树(模板 Kruskal算法)
- 求解最小生成树——kruskal算法模板
- 【VS开发】ActiveX控件如何定制属性?
- Scala 异常处理
- 4.7 编写一个递归函数,将所输入的 10 个字符按相反顺序排列出来。
- HDU1232 畅通工程 并查集(第一题) 水题
- Android Apk资源文件压缩学习
- 最小生成树 Kruskal 算法模板
- sublime调试javascript方法和步骤
- 微信6.0界面开发学习
- HDU1272 小希的迷宫 并查集
- 【VS开发】DLL和ocx的区别
- 4.8 用递归方法编程计算以下式子的值: n^1+n^2+n^3+n^4+...+n^10,其中 n=1,2,3
- Google首席工程师Joshua Bloch谈如何设计优秀的API
- 自定义recyclerView实现时光轴效果
- 阅读代码记录