并查集
来源:互联网 发布:java 线程池 等待队列 编辑:程序博客网 时间:2024/06/06 01:18
并查集简述
并查集
——并查集是一种树形结构,简单来说就是让有关系的单元之间用一个代表元来表示相当于把有关系的单元放在同一个集合。
- 并查集三种操作
——首先对每个单元自定义一个代表元fa,让这个fa == 单元本身。
-查–查单元的代表元fa。
-并–将有联系的单元的代表元fa并在一起,最终让同属与一个集合的单元的代表元都相同。
#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int MAxn = 1e5 + 5;int fa[MAxn]; // 存第I个的代表元void Find(int x) // 查操作,通过递归查找x的代表元;{ if(fa[x] == x) return x; return fa[x] = find(fa[x]); //查当前点的代表元;}int main(){ int n; cin >> n; for(int i = 1; i <= n; i++) fa[i] = i; //并查集第一步操作,初始化第I个的代表元 int u, v; cin >> u >> v; f[find(u)] = find(v); //并操作,每次修改的是u的代表元,让u,和v的代表元相同; return 0;}
并查集的代码比较简短, 初学的时候还是需要多多领悟,才会懂。当要查询一个点和另一个点是否同属于一棵树,或者有无关系的时候,并查集比dfs或者bfs搜索算法的时间复杂度降低很多,当数据变得很大的时候,并查集能快速判断两个点之间是否有联系。
阅读全文
0 0
- HDU3938 并查集 并查集
- 并查集(集并查)
- HDU1232 并查集<并>
- 并查集
- 数据结构-并查集
- 并查集
- 并查集!
- 并查集
- 并查集
- 并查集
- 并查集
- 并查集总结
- 并查集学习
- 并查集
- 并查集
- 并查集
- 所谓并查集
- 并查集
- raspberry 3b 64bit 系统安装,以及交叉编译环境、调试环境的搭建
- 网络中获取json数据
- sqlite迁移到mysql脚本
- 题目:斐波那契数列
- Ionic初学习上遇到的问题
- 并查集
- 小白教你学习C++(9)文件流操作
- UE4 AI行为树简记
- seafile 迁移手册
- Struts2项目实战 微云盘(一):项目分析
- Java 注解1
- java图片处理以及pdf转图片
- macdown安装
- =号运算符,printf函数,进制输出的例题详解