随笔分类 - 字符串
摘要:P3805 【模板】Manacher manacher 主要是用来解决与回文串有关问题的算法。 其核心思想是维护当前求出来的右端点最大的回文串。我们设 \(d_i\) 表示位置 \(i\) 的最大回文半径。我们先只考虑奇回文串。 对于我们维护的这个回文串,对于位置 \(i\),其关于回文串的中点的对
阅读全文
摘要:给一个可以画出 SAM 结构的网站。(从机房大佬那里偷的) 但听管理大大说这个东西画广义 SAM 的时候有点问题,详细见洛谷讨论 悲惨故事 长文警告 关于广义 SAM 的讨论。 然后洛谷管理大大给了一个他自己做的网站:SAM Visualizer。就是好像会在随机时间 404 掉。 模板 简介 SA
阅读全文
摘要:AC 自动机可以看做是一个 trie 树与 KMP 结合的一个东西。其解决的问题是 KMP 的升级版:多模式串匹配。 P3808 AC 自动机(简单版) 正常的多模式串匹配,AC 自动机的入门题。 由于模式串不少,因此我们先考虑将所有模式串插入一个 trie 树里。 然后我们考虑像 KMP 一样对于
阅读全文
摘要:KMP 是线性时间判定模式串 \(s\) 中匹配串 \(t\) 的出现位置的算法。 P3375 【模板】KMP border 定义串 \(s\) 的 border 是这个串的前缀等于后缀的最长长度。 线性求某个串的 border 是显然的。 我们先要求出 \(t\) 的所有前缀的 border。时间
阅读全文
摘要:顾名思义,trie树是由字典与树的结合体,是一种方便快捷地存储字符串等字符集较小的串集的数据结构(不确定算不算数据结构) 而其结构是朴素的。trie树的节点本身并没有特殊的含义,其信息更多体现在边上。如下图 这是一颗典型的trie树。 例如我们要表示aba这个字符串,我们就从1->2->6->11,
阅读全文
摘要:后缀数组 P3809 【模板】后缀排序 定义: 对给定字符串的所有后缀排序后得到的sa、rk数组 sa[i]->排名为 i 的后缀的位置 rk[i]->位置为 i 的后缀的排名 容易发现,sa与rk互为逆,如:sa[rk[i]]=i,rk[sa[i]]=i 应用 应用主要体现在用后缀数组求 lcp
阅读全文

浙公网安备 33010602011771号