|
- 后缀数组全家桶-从哈希乱搞到入门 - 洛谷专栏
字符串后缀,是字符串的大杀器,在做题过程中,我们能够体会到后缀独特的性质,能够将我们必须暴力枚举的子串简单化,并且将它的对立面——前缀联系起来,后缀数组这一利器,能够解决大部分的问题,但是,有一些问题是后缀数组所不能解决的。
- 后缀数组简介 - OI Wiki
在一般的题目中,常数较小的倍增求后缀数组是完全够用的,求后缀数组以外的部分也经常有 𝑂 (𝑛 l o g 𝑛) O (n log n) 的复杂度,倍增求解后缀数组不会成为瓶颈。
- 后缀数组学习笔记 - CTHOOH - 博客园
这种两个字符串的方法是将一个放在另一个后面并用分隔符隔开,接着对新串用后缀数组。 假设是字符串 A 和 B,并拼接出串 A | B (中间的 | 是分割符),处理出新串的 h e i g h t 后,枚举相邻的两个 s a 并特判是否在同一子串中即可。
- 后缀数组模板详解+食用指南 - 知乎
由于后缀数组其本身在构造时的特殊性,于是能够做到在 O (nlogn) 的时间复杂度下排序多个字符串,具体方法就是通过将所有需要排序的字符串串在一起,中间用一个比所有字符都大的分隔符隔开,这样就不用考虑多余后缀的问题了
- 后缀数组详解 - 洛谷专栏
这一部分是对那些剩下的后缀(即后缀 1 n−i)排序,这里可以理解为我们在枚举 sa[j],即按第一次的排名枚举后缀。 实际上,我们枚举的是剩下后缀的第 i+ 1 位,即第二关键字开始的位。
- 后缀数组 - Eliauk 的博客
我们求出 \ (sa\) 数组了之后,不能直接用 \ (rk [sa [i]] = i\) 给 \ (rk\) 赋值,这是因为有可能有些后缀的第一二关键字都相同,那么它们的排名也相同,这需要特判一下。
- 浅谈后缀数组算法 - 洛谷专栏
后缀数组 (suffix array)是一个通过对字符串的所有后缀经过排序后得到的数组。 后缀数组同时也是后缀树的一个替代品,它比后缀树更好写,所以OIers通常会使用后缀数组,而非后缀树。
- 后缀数组详解 - CSDN博客
如果枚举两个字符串的后缀,则时间复杂度为 O(n2)。 我们可以将一个字符串并在另一个字符串后面,中间用一个没有出现过的字符隔开,再求新字符串的后缀数组。
|
|
|