【真香笔记இ௰இ】并查集进阶

唉文章开头第一句:回家旅游一时爽,集训补课火葬场。
Day3-并查集进阶

并查集

是什么:是一种树形集合式的数据结构
为什么:便于快速判断元素所在集合。看到了一种更好的说法:

并查集擅长的是动态维护图中具有传递性的关系。

怎么弄:要求能够在纸上推演:

  1. 建树过程
  2. 长链扁平化过程->路径压缩的建树过程
  3. 启发式合并思想->按秩合并的建树过程
    启发式合并是一种思想:将小的并到大的而不是将大的并到小的,这是基于人类经验和直觉的算法
    但学长说:
    在这里插入图片描述
    so…该了解还是要了解一下的,重点还在于利用并查集高效的解题
  4. get操作(查询一个节点所属的集合)
  5. 并查集组成结构:
    一个记录父节点的数组fa[N],初始化为自己
    一个get()找根节点的函数
    一个merge(x,y)将x和y两个有关系的节点合并在一个集合

学长提及的两种进阶并查集:

在这里插入图片描述

扩展域并查集:

是什么:在并查集的基础上扩展出节点加以实现题目所需的复杂功能
为什么:实现复杂功能
怎么弄:例如扩展根节点以区分集合之间的关系(见例题)
例:https://blog.csdn.net/qq_39759315/article/details/80859210#commentsedit
在这里插入图片描述
题中三个集合是有A吃B,B吃C,C吃A的关系的,此时扩展域并查集是指在三个集合的根部扩展一个节点来表示三个物种,这里有一个非常出色的操作是用模3的结果来区分三个物种:
在这里插入图片描述

边带权并查集

是什么:在并查集的基础上多开一个数组记录相关数据(如例题中记录集合节点数的sze数组和记录转移次数的tran数组)
为什么:体现集合内部即节点与节点之间的关系
怎么弄:例如多开几个数组做记录(这么low吗我不敢相信自己的理解d=====( ̄▽ ̄*)b)
例:https://blog.csdn.net/weixin_42557561/article/details/83788210

说实话学算法写题目一点都不累还很爽,真希望ACM能继续打下去。这么着吧,明年招新我继续去,大不了别人打大二大三,我只打大三一年呗,再说,很多比赛也不止集训队员可以参加的,我大一虽然水过去了但比下一届大一有了很多经验,只要实力够了,一定会被需要的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值