会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
cold_jelly 的小窝
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
下一页
2025年7月18日
【字符串】总结 4:扩展 KMP
摘要: \(z\) 函数 对于字符串 \(s\)(下标从 \(0\) 开始),定义 \(z\) 函数 \(z(i)\) 的值为 \(s\) 与 \(s[i\sim |s|-1]\) 的最长公共前缀的长度,并且规定 \(z(0)=0\)。例如对于 \(s=\text{ABAAABC}\): \(z(0)\):
阅读全文
posted @ 2025-07-18 10:16 cold_jelly
阅读(16)
评论(0)
推荐(2)
2025年7月17日
【字符串】总结 3:字典树(Trie)基础
摘要: 顾名思义,字典树就是一棵功能很像字典的一棵树。 我们在查单词时,往往是先按照首字母,再按照第二个字母,以此类推地查询我们想要的单词的。字典树通过将树的边赋为一个个字符,从而使我们能够一层层像查单词一样得到字符串的。 Trie 的基本结构 先放图哈: 在上图所示的 Trie 中,通过对于从根节点到叶子
阅读全文
posted @ 2025-07-17 21:39 cold_jelly
阅读(17)
评论(0)
推荐(1)
【字符串】总结 2:KMP 算法
摘要: 字符串匹配 字符串匹配问题可以总结为下面这个问题: 给定字符串 \(s\) 和 \(t\),在 \(s\) 中寻找 \(t\)(这个子串)。 KMP 算法可以在 \(O(|s|+|t|)\) 的复杂度内求解该问题。 BF 算法 在 KMP 算法前,先看看暴力做法(BF 算法)。 不妨令问题中的 \(
阅读全文
posted @ 2025-07-17 20:40 cold_jelly
阅读(15)
评论(0)
推荐(2)
【字符串】总结 1:前言 & 字符串 Hash
摘要: 前言 最近一直在做字符串的题,因此来写篇总结梳理一下【字符串】部分的知识点。 本文采用符号及解释 \(\Sigma\):字符集。例如全小写字母(\(|\Sigma|=26\)),数字符集(\(|\Sigma|=10\)); \(|s|\):字符串 \(s\) 的长度; \(s[i\sim j]\):
阅读全文
posted @ 2025-07-17 15:33 cold_jelly
阅读(16)
评论(0)
推荐(1)
2025年5月28日
【FHQ-Treap】学习笔记
摘要: 前置知识:BST & Treap 模板题 1:P3369 【模板】普通平衡树; 模板题 2:P3391 【模板】文艺平衡树。 简介 Treap 是一种入门级平衡树,有旋 Treap 通过旋转操作维持其平衡。相应地,无旋 Treap 不需要通过旋转,而是利用分裂与合并操作来维持平衡。由于创始人的名字,
阅读全文
posted @ 2025-05-28 17:49 cold_jelly
阅读(65)
评论(0)
推荐(3)
2025年5月27日
【线段树合并】学习笔记
摘要: 前置知识:线段树、动态开点、权值线段树。 我们现在假设有如图所示两棵线段树(省略区间信息): 合并(merge)操作就是将这两棵线段树按某种方式组合成一棵新线段树,并且所有节点权值的组合方式应一致。 首先,我们要清楚,线段树合并本质上是一个相当暴力的过程,我们直接在两棵线段树上跑 DFS,对当前节点
阅读全文
posted @ 2025-05-27 17:57 cold_jelly
阅读(35)
评论(0)
推荐(2)
2025年5月24日
【可持久化线段树】学习笔记
摘要: 模板题:P3919 【模板】可持久化线段树 1(可持久化数组) 前置知识:线段树、动态开点。 简介 对于一个数据结构,例如普通线段树、树状数组等,我们通常维护的是经过若干次操作后该数据结构的最新状态。但对于模板题而言,如果要求我们查询该数据结构所有历史版本的信息时,就需要用到可持久化数据结构了。 何
阅读全文
posted @ 2025-05-24 12:00 cold_jelly
阅读(62)
评论(0)
推荐(2)
2025年5月23日
【Treap】学习笔记
摘要: 平衡树有很多种,像什么 Treap、Splay、红黑树啊等等,但其中最好理解、最好入门的还是 Treap 了,而且 Treap 的常数较小,跑起来比大部分平衡树都要快。 我们观察 Treap 这个单词,发现 Treap = Tree + heap。事实上 Treap 的实现确实是基于两个基本结构——
阅读全文
posted @ 2025-05-23 21:39 cold_jelly
阅读(107)
评论(0)
推荐(4)
2025年5月22日
【李超线段树】学习笔记
摘要: 前置知识:线段树、基础解析几何知识。 本篇文章参考了 Glacial_Shine 的这篇文章,在此一并感谢。 简介 李超线段树是一种用于维护平面直角坐标系内线段关系的数据结构。 具体而言,李超线段树支持在平面直角坐标系中动态插入线段,支持快速询问给定竖线与所有线段交点的最大纵坐标。 例如,例题 P4
阅读全文
posted @ 2025-05-22 17:36 cold_jelly
阅读(229)
评论(0)
推荐(4)
2025年5月20日
【树链剖分】学习笔记
摘要: 板子:P3384 【模板】重链剖分/树链剖分 建议先阅读完题面,了解几个操作后再看文章。 树链剖分的核心思想就是把树剖分成若干条链,从而将树上问题转化为序列问题,便于我们使用数据结构来维护信息、优化算法。 常见的树链剖分有重链剖分、长链剖分等,本文主要介绍重链剖分。 本文的符号表示与基本定义: \(
阅读全文
posted @ 2025-05-20 14:31 cold_jelly
阅读(64)
评论(0)
推荐(3)
上一页
1
2
3
4
下一页
公告