并查集模板
来源:互联网 发布:linux系统find命令 编辑:程序博客网 时间:2024/06/05 11:56
#include<cstdio>#define MAX 1000struct UnionFind{ int fa[MAX]; void make_set()//初始化 { for (int i = 0; i < MAX; i++)fa[i] = i; } int find_set(int x)//查 { return x == fa[x] ? x : fa[x] = find_set(fa[x]); } void union_set(int a, int b)//合并 { int x = find_set(a); int y = find_set(b); if (x != y) { fa[y] = x; } }};int main(){}
[map版]
#include<cstdio>#include<map>using namespace std;struct UnionFind{ map<int,int>mp; UnionFind() { mp.clear(); } int find_set(int x)//查 { return x == mp[x] ? x : mp[x] = find_set(mp[x]); } void union_set(int a, int b)//合并 { int x = find_set(a); int y = find_set(b); if (x != y) { mp[y] = x; } }};
[可计数]
struct UnionFind{ int fa[MAX]; int num[MAX]; UnionFind() { make_set(); } void make_set()//初始化 { for (int i = 0; i < MAX; i++) { fa[i] = i; num[i] = 1; } } int find_set(int x)//查 { return x == fa[x] ? x : fa[x] = find_set(fa[x]); } void union_set(int a, int b)//合并 { int x = find_set(a); int y = find_set(b); if (x != y) { fa[y] = x; num[x] += num[y]; } }};
阅读全文
0 0
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集模板
- 【模板】并查集
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集【模板】
- 并查集 模板
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集模板
- 并查集 模板
- 并查集模板
- XSS攻击之窃取Cookie
- 小白用户也能从零开始快速学会绘制思维导图的技巧
- Unity 物理系统--刚体
- Maven的安装使用以及 Maven+Spring hello world example
- oracle truncate恢复方法
- 并查集模板
- oracle Logminer日志挖掘redo log中的sql语句
- JavaWeb中读取文件资源的路径问题
- vxWorks中对于系统内存的分配
- ORA-12516:TNS:监听程序找不到符合协议栈要求的可用处理程序
- 深入理解Java:注解(Annotation)自定义注解入门
- 关于《ERP原理》的读书笔记和思考(四)_ERP物料管理
- Xshell 连接Linux虚拟机失败解决办法
- 流程图制作软件绘图技巧:快速学会怎么画流程图