并查集模板
来源:互联网 发布:linux tomcat线程挂起 编辑:程序博客网 时间:2024/06/14 12:22
#include <stdio.h>const int MAX_N = 8;int par[MAX_N];//父亲 int rank[MAX_N];//树的高度 //初始化n个元素void init(int n){for(int i = 0;i < n;i ++) {par[i] = i;rank[i] = 0;} } //查询树的根 int find(int x){if(par[x] == x) {return x;} else {//递归找到树的根 return par[x] = find(par[x]);}} //合并x和y所属的集合 void unite(int x, int y){ x = find(x);y = find(y);if(x == y)return ;if(rank[x] < rank[y]){par[x] = y;} else {par[y] = x;if(rank[x] == rank[y])rank[x] ++;}}//判断x和y是否属于同一个集合 bool same(int x,int y){return find(x) == find(y);}int main() {int n = 7;init(n);printf("par:");for(int i = 0;i < n;i ++) {printf("%d ", par[i]);} printf("\n");unite(1, 3);unite(2, 4);unite(1, 2);unite(5, 6);unite(6, 1);printf("ran:");for(int i = 0;i < n;i ++) {printf("%d ", rank[i]);} printf("\n");printf("par:");for(int i = 0;i < n;i ++) {printf("%d ", par[i]);} printf("\n");return 0;}
0 0
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集模板
- 【模板】并查集
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集【模板】
- 并查集 模板
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集 模板
- 并查集模板
- C++ Tips
- 输入父集,求出所有子集.
- 使用蚁群算法(ACO)、遗传算法(GA)、霍普菲尔德网络(Hopfield)解决旅行商问题(TSP)
- 探索并发编程(五)------Java多线程开发技巧
- 【工具】Source Insight中文注释间隔过大的解决办法
- 并查集模板
- spark工作机制
- jenkins windows下挪动工作目录
- IDEA开发时,控制台输出中文乱码解决方法
- 关于Dword、LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR
- Linux/MacOS下matplotlib能正常显示的中文字体选择
- bzoj 1070【scoi2007】修车(网络流)
- PHP 对象转为字符串,及中为乱码
- 数据挖掘-目录-分类器(classification)