并查集问题
来源:互联网 发布:unity3d 手机摇杆 编辑:程序博客网 时间:2024/05/17 02:22
合并两个不相交集合
操作很简单:先设置一个数组Father[x],表示x的“父亲”的编号。 那么,合并两个不相交集合的方法就是,找到其中一个集合最父亲的父亲(也就是最久远的祖先),将另外一个集合的最久远的祖先的父亲指向它。
void Union(int x,int y){ fx = getfather(x); fy = getfather(y); if(fy!=fx) father[fx]=fy;}
获取父亲元素
int getfather(int v){ if (father[v]==v) return v; else { father[v]=getfather(father[v]);//路径压缩 return father[v]; }}
判断两个元素是否属于同一集合
bool same(int x,int y){ return getfather(x)==getfather(y);}
并查集的优化
fillchar(rank,sizeof(rank),0);
void judge(int x ,int y) { fx = getfather(x); fy = getfather(y); if (rank[fx]>rank[fy]) father[fy] = fx; else { father[fx] = fy; if(rank[fx]==rank[fy]) ++rank[fy]; }}
- 并查集问题
- 并查集问题
- 并查集问题
- 并查集问题
- 并查集问题
- 并查集-朋友问题
- [并查集]染色问题
- 【并查集】食物链问题
- 布线问题-并查集
- 并查集 Table问题
- 并查集求解问题
- 并查集-区间问题
- 5---------并查集问题
- “并查集”问题:抢银行问题
- 食物链(并查集问题)pku1182
- 并查集问题--source acm1232
- HDU 1232 并查集问题
- Pseudoforest (并查集处理回路问题)
- [转]CS:GO 服务器架设
- Linux操作系统中/sbin/init程序的执行过程
- 转载 --HTTP协议 (二) 基本认证
- 《算法设计手册》面试题解答 第一章
- [解决]Windows 8 丢失 MSVCR71.dll 或 MSVCP71.dll
- 并查集问题
- JavaScript中的匿名函数及函数的闭包
- 获取上传文件夹的路径
- 创建ASM磁盘
- FPGA三分频,五分频,奇数分频
- 有用的HTML+CSS片段,html5片段,css3代码
- Unity3D OnGUI函数控制音乐
- 积分?
- 电话薄Java实现小程序