int n;
int p[MAX_N];
void init() {
for (int i = 1; i <= n; i++) {
p[i] = i;
}
}
int find(int x) {
return x == p[x] ? x : p[x] = find(p[x]);
}
void unine(int x, int y) {
x = find(x), y = find(y);
if(x > y) swap(x, y);
p[y] = x;
}
并查集(DSU)模板
最新推荐文章于 2024-09-21 16:35:48 发布
本文介绍了如何在C++中使用并查集(DisjointSet)数据结构,包括初始化函数init(),查找根节点find()以及合并操作unite(),展示了基本的树形结构处理方法。
摘要由CSDN通过智能技术生成