Skip to content

泉州一中信息学Blog

信息学奥赛技术分享博客

  • 登录
  • 小学oj
  • 中学oj
  • 测试页面1
  • Toggle search form

Winter Vacation Training Day 3 (01.29)

Posted on 2024年1月29日2024年1月29日 By c2022zyh Winter Vacation Training Day 3 (01.29)有1条评论

Extend 3.1 : Disjoint Set

Example :

Figure 6.1 : Disjoint Set

Figure 6.1 : Disjoint Set

Disjoint Set is a set. It can do merge(), find(), and other

1. find()

You only need to search upwards and upwards, until you find the root.
If a node r is the root of a tree, par[r] = r.
For example, node 5, the parent par[5]=5, so find(5) = 5.
More example will appear after merge().

2. merge()

It is quite easy. Find their roots, and change one’s par[] to another one.
For example, we want to merge node 3 and 4, find root 3, 4, and point4 to 3 or 3 to 4.
Figure 6.2 : Disjoint Set - merge
Figure 6.2 : Disjoint Set – merge
Here, I’ll also show you how find() works.
Another Example, we want to find the root of 4.
Step 1, we find its parent, 3.
And next, we find its parent, 3, itself.
So, the root of 4 is 3.

Optimize : merge by rank.

Now, we want to merge node 1 and 3.
We can point 3 to 1 or 1 to 3.
Which one is better?
As is known to us, we should point 1 to 3. Because the depth of 1 is smaller than 3.
Figure 6.3 : Disjoint Set - Optimized merge
Figure 6.3 : Disjoint Set – Optimized merge
But, how does the program know it?
We defines rank here.
The rank of a node can be regarded to the depth of its sons.
For example the rank of 1 and 5 are both 1.
When we merge the node u and v, if rank[u] <= rank[v], we point u to v.Otherwise, we point v to u.
If rank[u] equals to rank[v], rank[v] should add by 1.
It will make the code more efficienty.

Given Score :
    Difficulty : 2
x   Basic Score : 36 />
Score : 498

Pages: 1 2 3 4 5 6 7 8 9 10 11 12
训练日志

文章导航

Previous Post: 寒假集训Day 2
Next Post: 寒假训练Day3-2024.1.29

Comment (1) on “Winter Vacation Training Day 3 (01.29)”

  1. c2022zyh说道:
    2024年1月29日 下午7:18

    All Figures in the passage :
    http://59.60.22.18:2500/wordpress/wp-content/uploads/2024/01/C03_Figures.zip

    登录以回复

发表回复 取消回复

要发表评论,您必须先登录。

2025年 6月
一 二 三 四 五 六 日
 1
2345678
9101112131415
16171819202122
23242526272829
30  
« 2月    

2024常州 Class Classic OI Problems Contest cqr的长乐集训2023 CZYZ LOC New Game NOI NOIP Password Protected PM_PK Preview Problems Retrospect Selfmade Qusetion STL The end Training Uneasy Problem 蒟蒻 通报

  • 训练日志
  • 链表
  • 入门
  • 模拟
  • dfs序
  • 并查集
  • spfa
  • 最小割
  • 矩阵树定理
  • 仙人掌
  • BSGS
  • 凸包
  • 回文自动机
  • 递推与动归
  • 堆
  • 莫队算法
  • ST表
  • Treap
  • 树套树
  • 可持久化线段树
  • 初赛
  • 搜索
  • 贪心
  • 深度优先搜索
  • 欧拉图
  • dijkstra
  • 费用流
  • 哈夫曼树
  • kruskual
  • 置换
  • 旋转卡壳
  • KMP
  • 区间动归
  • STL
  • 链表
  • 可并堆
  • sply
  • 主席树
  • 可持久化字典树
  • 算法
  • 动态规划
  • 构造
  • 广度优先搜索
  • 最短路
  • floyd
  • 最大流
  • 虚树
  • prim
  • 筛法
  • 半平面交
  • 字典树
  • 背包动归
  • 基础数据结构
  • 分块
  • 线段树
  • 替罪羊树
  • K-DTree
  • 图论
  • 二分法
  • 迭代搜索
  • 拓扑排序
  • 有上下界网络流
  • 生成树
  • 快速幂
  • 后缀数组
  • 树形动归
  • 哈希表
  • 中级数据结构
  • 平衡树
  • 可持久化数据结构
  • 数据结构
  • 三分法
  • 启发式搜索
  • 图的连通
  • 点分治
  • 博弈论
  • AC自动机
  • 状压动归
  • 单调栈
  • 树状数组
  • 高级数据结构
  • OI资料
  • 数学
  • 高精度
  • 差分约束
  • 树上倍增
  • 素数测试
  • 后缀自动机
  • 数位动归
  • 单调队列
  • 新闻
  • 几何
  • 随机化
  • 二分图染色
  • 树链剖分
  • 欧拉函数
  • manacher
  • 斜率优化
  • 离线处理
  • 信息学奥赛学长风采
  • 字符串
  • 二分图匹配
  • prufer编码
  • 卡特兰数
  • 密码学
  • 决策单调
  • 赛后总结
  • 其他
  • 2-SAT
  • 最近公共祖先
  • 矩阵乘法
  • 记忆化搜索
  • 网络流
  • Link cut tree
  • 排列组合
  • 树
  • 高斯消元
  • 乘法逆元
  • 容斥原理
  • 调和级数
  • 概率与期望
  • 模线性方程组
  • 莫比乌斯反演
  • 快速傅里叶变换
  • 扩展欧几里德
  • 最大公约数与最小公倍数

近期文章

  • DP杂题
  • 2025年2月13日模拟赛
  • HLOJ-TEST ROUND 4-T1/T2(构造)- 3
  • HLOJ-TEST ROUND 4-T1/T2(构造)- 2
  • HLOJ-TEST ROUND 4-T1/T2(构造)- 1

近期评论

归档

  • 2025年2月
  • 2025年1月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月

Copyright © 2025 泉州一中信息学Blog.

Powered by PressBook WordPress theme