随笔分类 -  数据结构

摘要:这里提供一个线段树合并的做法,个人感觉思维难度和代码难度都不大,~~我一发过了这题,nice~~ 分析 把每个人对应的路径看成是询问,考虑如何处理这些询问: 可以发现对于一条路径 uv,相当于是 uv 依次打上 0,1,2, 这样的时间戳,然后最暴力的做法就 阅读全文
posted @ 2022-07-14 15:37 HinanawiTenshi 阅读(34) 评论(0) 推荐(1) 编辑
摘要:目录 线段树分治 本题做法 实现 线段树分治 事实上线段树分治的做法很简单,就是在时间轴上开线段树,以方便处理在一段时间内其效果的操作。 比如说,现在整棵线段树维护的时间范围是 [1,3],开出的线段树自然是: 现在有一个操作在时间 [1,2] 上作用,那么对应于线段树的节点就是: 又有 阅读全文
posted @ 2022-07-12 21:21 HinanawiTenshi 阅读(1034) 评论(1) 推荐(1) 编辑
摘要:分析 这题做法很简单: 跑一遍 MST(最小生成树),把这棵树建立起来,上面的边标记为树边。 枚举非树边 (u,v),记边权为 w,考虑这条边能够提供的增量 del。 具体来说:只需要求出树上 uv 的路径上的边的最大值 mx1 和严格次大值 $ 阅读全文
posted @ 2022-07-10 20:19 HinanawiTenshi 阅读(54) 评论(0) 推荐(0) 编辑
摘要:~~块乐~~ 分析 因为这题查询的是指定区间 [l,r] 的最大异或子段,我们很难不想到使用可持久化 trie 来搞。 然而,对于每次查询,如果单纯地使用可持久化 trie,那么必须要枚举右端点进行查询,那么每次查询的复杂度是 $O(n{\rm {l 阅读全文
posted @ 2022-06-27 20:52 HinanawiTenshi 阅读(77) 评论(0) 推荐(0) 编辑
摘要:广义后缀自动机简述 不了解后缀自动机的可以看看: https://www.cnblogs.com/Tenshi/p/16408718.html 在字典树的基础上建立广义后缀自动机。 建立 对若干模式串,先插入字典树中。 注意到对字典树进行 bfs 的时候,对应的状态的 \( 阅读全文
posted @ 2022-06-24 23:54 HinanawiTenshi 阅读(114) 评论(0) 推荐(0) 编辑
摘要:后缀自动机(SAM)小记 介绍 简单来说,就是使用一个 DAG 以及一棵树维护一个字符串所有子串(压缩的)信息。 其中 DAG 的点称为状态。 endpos 个人认为 SAM 的核心在于 endpos。 子串(终点)在原串出现的下标集合称为 endpos 集合 阅读全文
posted @ 2022-06-24 14:20 HinanawiTenshi 阅读(74) 评论(0) 推荐(0) 编辑
摘要:虚树小记 简明地讲解了虚树的构建过程。 引入 比如给你一棵树,然后有多次询问,每次询问都给出树上若干个点 |mi| 个(称为关键点),然后对这些点的性质作查询(比如求它们的最远点对什么的) 注意到如果每次询问都扫描整棵树时间复杂度会爆炸,但是如果能够保证总查询扫描的点与 \(\sum |m 阅读全文
posted @ 2022-06-23 17:22 HinanawiTenshi 阅读(33) 评论(0) 推荐(0) 编辑
摘要:后缀数组小记 简要地介绍了后缀数组相关知识,对原理部分的解析较浅。 介绍 sa[i]: 代表排名 i 的后缀在原串的下标。 rank[i]: 表示原串下标 i 所对应的后缀的排名。 height[i]: \(\rm{height}[i] = \rm{LCP}(\rm{suffix(s 阅读全文
posted @ 2022-06-19 22:23 HinanawiTenshi 阅读(18) 评论(0) 推荐(0) 编辑
摘要:子序列自动机 这东西是我刷 ARC 的时候遇到的,慕名而来。 结合模板题阅读: https://www.luogu.com.cn/problem/P5826 构建 这个自动机原理十分简单,你可以将它当作一个 dp 来食用: 记所给的字符串为 w,字符集为 S,\(next[i][ch 阅读全文
posted @ 2022-03-29 23:08 HinanawiTenshi 阅读(32) 评论(0) 推荐(0) 编辑
摘要:K-D Tree 这东西是我入坑 ICPC 不久就听说过的数据结构,但是一直没去学 QAQ,终于在昨天去学了它。还是挺好理解的,而且也有用武之地。 目录 简介 建树过程 性质 操作 例题 简介 K-D Tree(KDT , k-Dimension Tree) 是一种可以 高效处理 k 维空间 阅读全文
posted @ 2022-01-26 12:27 HinanawiTenshi 阅读(1557) 评论(0) 推荐(3) 编辑
摘要:传送门: (空间给的大,但数据强) https://www.luogu.com.cn/problem/P5025 (数据弱) https://www.acwing.com/problem/content/3042/ 线段树优化建图 + 拓扑排序。 可以作为线段树优化建图模板题食用。 分析 对于这道题 阅读全文
posted @ 2021-10-26 10:21 HinanawiTenshi 阅读(109) 评论(0) 推荐(3) 编辑
摘要:使用 fhq_treap 竟然让我一发就过了这题,nice,比之前编写 Splay 的时候对着 y总 代码 debug 的体验好多了。经此一役,不得不承认 fhq_treap 真的非常容易编写而且错误率低,不仅如此,它所能支持的操作也可以覆盖 Splay 所支持的,而且能避免很多复杂的边界问题,绝赞 阅读全文
posted @ 2021-09-27 22:28 HinanawiTenshi 阅读(68) 评论(0) 推荐(0) 编辑
摘要:传送门: https://www.luogu.com.cn/problem/UVA11992 蓝书(训练指南)的线段树例题。 分析 这题在思维上并不复杂,是线段树的常见操作。 需要注意的地方主要是标记优先级: 这里我像蓝书一样记增加标记为 addv,赋值标记记为 setv。 当遇到赋 阅读全文
posted @ 2021-09-02 21:05 HinanawiTenshi 阅读(61) 评论(0) 推荐(0) 编辑
摘要:目录 原理 代码 原理 模板题传送门:https://www.acwing.com/problem/content/2817/ cdq分治用来解决什么样的问题呢?一般来说可以: 统计具有三维属性 (a,b,c) 的、满足一定的比较关系 data 有多少对。 优化一些数据结构,算法。 阅读全文
posted @ 2021-04-05 21:42 HinanawiTenshi 阅读(219) 评论(0) 推荐(0) 编辑
摘要:目录 简介 原理 代码 简介 所谓可持久化线段树,就是将线段树的各个历史版本存储起来,以达到通过利用历史信息解决问题的目的。 原理 以权值线段树为例, 我们来看看权值线段树是如何实现可持久化的。 给出一个空的权值线段树,依次插入四个数: 1 3 4 2 首先,这是空的树(记为第 0 个版本) 阅读全文
posted @ 2021-04-02 00:36 HinanawiTenshi 阅读(201) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示