C++并查集的实现
代碼如下:
#include <iostream> using namespace std; const int N = 100010; int par[N], ranks[N];void init(int n) { //初始化n個元素for (int i = 1; i <= n; i++) {par[i] = i;ranks[i] = 0;} }int find(int x) { //查詢樹的根if (par[x] == x)return x;elsereturn par[x] = find(par[x]); }void unit(int x, int y) { //合并x和y所屬的集合x = find(x);y = find(y);if (x == y)return ;if (ranks[x] < ranks[y])par[x] = y;else {par[y] = x;if (ranks[x] == ranks[y])ranks[x]++;} }bool same(int x, int y) { //判斷x和y是否屬于同一個集合return find(x) == find(y); }總結
 
                            
                        - 上一篇: CAD拉伸怎么使用
- 下一篇: 魔兽世界wow附魔攻略
