随笔分类 -  字符串

该文被密码保护。
posted @ 2025-08-13 16:45 dengchengyu 阅读(0) 评论(0) 推荐(0)
摘要:回文树(回文自动机) 学习笔记 回文自动机可以存储一个字符串的所有回文子串,根据 Manacher 的过程我们可以知道一个字符串的回文子串个数是 \(O(n)\) 的。 结构 回文自动机的每个节点表示以某个位置结尾的最长回文子串。 回文自动机有两种边,转移边 \(tr\) 和失配边 \(fail\) 阅读全文
posted @ 2025-07-09 15:11 dengchengyu 阅读(17) 评论(0) 推荐(0)
摘要:扩展 KMP(Z 函数)& Manacher 学习笔记 以下字符串从 \(1\) 开始标号。 扩展 KMP(Z 函数) 例题。求字符串 \(a\) 与 \(a\) 的每一个后缀 \(i\) 的 LCP \(z_i\),求字符串 \(a\) 与 \(b\) 的每一个后缀 \(i\) 的 LCP \(p 阅读全文
posted @ 2025-04-19 10:15 dengchengyu 阅读(17) 评论(0) 推荐(0)
摘要:后缀数组 以下,我们将字符串的元素从 \(1\) 开始标号。后缀 \(i\) 表示以 \(i\) 开头的后缀。 定义 记 \(sa_i\) 表示将所有后缀按字典序排序后,第 \(i\) 小后缀的标号。 记 \(rk_i\) 表示后缀 \(i\) 的排名。 后缀排序 两只 log 的做法 我们采用倍增 阅读全文
posted @ 2025-04-17 16:25 dengchengyu 阅读(17) 评论(0) 推荐(0)
摘要:定义 后缀自动机是一个 DAG,边带权(权值是一个字符),有一些节点称作结束节点,从根节点到结束节点的任意路径构成原字符串的所有后缀。由于后缀的前缀为子串,于是从根节点到任意节点的路径构成原字符串的所有子串。 后缀自动机上每个节点的每种边权的出边最多一条,这意味着后缀自动机上从根节点出发的每条路径与 阅读全文
posted @ 2025-04-06 17:12 dengchengyu 阅读(39) 评论(0) 推荐(0)
摘要:[复习] AC自动机 自动机 从一个状态通过接收一个信号转移到另一个状态。 其实就是从一个点走一种颜色的边到达另一个点,你会有一个初始点,然后每次走当前要走的颜色的边,会走到一个目标点,目标点保存着需要的答案。 AC自动机 以 \(Trie\) 为基础,\(kmp\) 的前缀函数思想构建的自动机。 阅读全文
posted @ 2024-10-24 07:47 dengchengyu 阅读(20) 评论(0) 推荐(0)
摘要:[复习] KMP 前缀函数 设 \(S_i\) 为字符串 \(S\) 的第 \(i\) 个位置。 我们设 \(\pi(i)\) 表示字符串以 \(i\) 结尾的前缀的最长公共前后缀的长度,也记作 border。 这里的前后缀都指的是真前缀、真后缀。 怎么 \(O(n)\) 求出 \(\pi(i)\) 阅读全文
posted @ 2024-10-19 19:57 dengchengyu 阅读(31) 评论(0) 推荐(0)