Disjointset 并查集(按秩合并,与路径压缩)的模板
来源:互联网 发布:手机电路仿真软件中文 编辑:程序博客网 时间:2024/06/08 05:49
并查集介绍 USACO 翻译:http://www.nocow.cn/index.php/%E5%B9%B6%E6%9F%A5%E9%9B%86
http://www.nocow.cn/index.php/Code:Disjointset_c%2B%2B
#include <iostream>
using namespace std;
int const MAXNUM = 500001;
int father[MAXNUM];
int rank[MAXNUM];
// 并查集 的三个函数initialSet, findSet, unionSet.
void initialSet(int i) //初始化并查集
{
father[i] = i;
rank[i] = 0;
}
int findSet(int i) //查找第i个 元素的集合号码, 回溯压缩路径.
{
if (i != father[i])
{
father[i] = findSet(father[i]);
}
return father[i];
}
void unionSet(int x, int y) // 合并两个集合, 通过rank[i] 判断元素加入集合的先后顺序. y 的rank 大于 x 的rank, x, y 均为集合号码。
{
if (x == y)
return;
if (rank[x] > rank[y])
{
father[y] = x;
}
else
{
if (rank[x] == rank[y])
{
rank[y]++;
}
father[x] = y;
}
}
另外一种并查集, 不用递归实现路径压缩。
- Disjointset 并查集(按秩合并,与路径压缩)的模板
- 并查集讲解(按秩合并与路径压缩),模板与典型例题
- 【模板】【数据结构】并查集(路径压缩+按秩合并)
- 并查集(按秩合并、路径压缩)
- 并查集的优化---路径压缩与启发式合并
- 并查集 按秩合并&路径压缩
- 并查集的“并优化”(leader合并)和“查优化”(路径压缩)
- 并查集的两种优化(按秩合并,路径压缩)
- 并查集的优化:按秩合并和路径压缩
- 并查集(两个优化—按秩合并、路径压缩) poj2492
- 数据结构实现之并查集(使用按秩合并和路径压缩)
- 并查集的启发式合并 和 路径压缩
- 并查集(路径压缩 && 启发式合并!!!)
- 并查集模板[路径压缩]
- 【模板】并查集 压缩路径
- 【并查集&路径压缩 模板】
- 并查集,路径压缩,按元素数量合并,带权并查集
- 杭电 1856 并查集路径压缩+按秩合并
- 批处理命令参数解释
- 从LiveJournal后台发展看大规模网站性能优化方法
- 安装sqlServer2000时,提示:以前的某个程序安装已经在计算机上创建挂起的文件操作
- poj 1579
- gtest试用初感
- Disjointset 并查集(按秩合并,与路径压缩)的模板
- cpu温度异常 怎么解决啊
- C++——类的构造函数、析构函数与赋值函数用法浅谈
- textming 研究机构
- 关于.Net控件
- mpeg4编码效率
- 敏捷软件开发实践(三)
- C++中itoa的使用
- 参数前缀