并查集
214 字
1 分钟
并查集
并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素。
顾名思义,并查集支持两种操作:
- 合并(Union):合并两个元素所属集合(合并对应的树)
- 查询(Find):查询某个元素所属集合(查询对应的树的根节点),这可以用于判断两个元素是否属于同一集合
并查集在经过修改后可以支持单个元素的删除、移动;使用动态开点线段树还可以实现可持久化并查集。

struct dsu { std::vector<int> pa;
explicit dsu(int size) : pa(size) { std::iota(pa.begin(), pa.end(), 0); }
int find(int x) { return pa[x] == x ? x : (pa[x] = find(pa[x])); }
void unite(int x, int y) { pa[find(x)] = find(y); }};文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章智能推荐
1
带权路径长度(WPL)
数据结构与算法带权路径长度 WPL 的定义、计算公式与哈夫曼树示例。
2
MEX:最小非负整数
数据结构与算法MEX 的三个性质,以及用 set + 计数数组支持插入删除后 O(log n) 查询 MEX 的实现。
3
数组离散化
数据结构与算法数组离散化的三种 C++ 写法:sort+unique、lower_bound 映射与宏封装。
4
Grafana 可视化与监控
云原生与运维Grafana 的定位、常见数据源与 Grafana + Prometheus 经典监控链路。
5
微服务之间如何传递 trace
后端开发跨服务传递的是 trace 上下文而非 tracer:HTTP header、gRPC metadata 与 MQ 消息头的标准做法。
随机文章随机推荐











