实现两个操作:

  1. 合并两个集合
  2. 查询某个元素的祖宗节点
    • 路径压缩优化
    • 按秩合并
    • 俩加一起是 , 基本为

扩展运用:

  1. 记录每个集合的大小, 和本身绑定, 直接绑定到祖宗节点上
  2. 每个点到根节点的距离, 因为每个点都不同, 因此需要绑定到每个节点上
    • 维护多类集合
  3. 链表问题, 染色一段但后一段会把前一段覆盖

题目