北大暑期学习之并查集
来源:互联网 发布:服务器与数据库的区别 编辑:程序博客网 时间:2024/05/16 02:01
数组pre[]记录了每个点的前导点是什么,函数find是查找,join是合并
int pre[1000];
int find(int x)
{
int r=x;
while(r!=pre[r])
r=pre[r];
int i=x,j;
while(pre[i]!=r)
{
j=pre[i];
pre[i]=r;
i=j;
}
return r;
}
通分支合并起来
void join(int x,int y)
{
int fx=find(x),fy=find(y);
if(fx!=fy)
pre(fx)=fy;
}
N个不同的元素分布在若干互不相交集合中,需要进行以下3个操作:
1.合并两个集合
2.查询一个元素在那个集合
3.查询两个元素是否属于同一个集合
实际应用:
Int get_par(int u)
{
If(par[a]!=a)
Par[a]=get_par(par[a]);
Return par[a];
}
Int query(int a,int b)比较两个节点是否树的根节点相同
{
Return get_par(a)==get_par(b);
}
Void merge(int a,int b)
{
Par[get_par(a)]=get_par_par(b);
}
0 0
- 北大暑期学习之并查集
- 北大暑期学习之搜索
- 北大暑期学习之动态规划
- 北大暑期学习之数学问题
- 北大暑期学习之最短路
- 北大暑期学习之最小生成树
- 北大暑期学习之强联通分量
- 北大暑期学习之线段树与树状数组
- 北大暑期学校学习总结
- ACM 学习之 并查集
- 算法学习之并查集
- 菜鸟算法学习之并查集
- 2017暑期集训 Day 3 搜索与并查集
- CSU-ACM2017暑期训练10-并查集&&HASH C
- CSU-ACM2017暑期训练10-并查集&&HASH F
- 北大acm 1611,2524解题报告--关于并查集
- 【北大夏令营笔记-并查集】poj1611-The Suspects
- 【北大夏令营笔记-并查集】poj1988-Cube Stacking
- LIBSVM使用方法及参数设置
- Android开源库之使用ZXing开源库二维码-实现竖屏且高识别率
- CCF 消除类游戏
- Android自定义控件下拉刷新和加载更多
- 【一步步学OpenGL 2】-《你好顶点》
- 北大暑期学习之并查集
- Xcode命令Archive导出4个ipa包的含义
- Header First HTML and CSS章后bullet points总结之Chapter 10
- 如何将磁盘从GPT格式转换成MBR格式——或MBR2GPT
- 怎样打印linux/mac环境变量
- uva 156 Ananagrams 解题报告
- 北大暑期学习之动态规划
- js 匀速/缓动动画 简单封装
- pl/sql developer调试定位到出错过程