首页 > 其他分享 >后缀数组学习笔记

后缀数组学习笔记

时间:2024-08-31 16:39:02浏览次数:9  
标签:后缀 笔记 数组 sa 个字符 rk

后缀数组挺好玩的,于是来写后缀数组学习笔记了。


什么是后缀数组?

后缀数组主要关系到 2 个数组:\(sa\) 和 \(rk\)。

  • \(sa[i]\) 表示将所有后缀按照字典序从小到大排序,排名第 \(i\) 的后缀的开头为第 \(sa[i]\) 个字符。

  • \(rk[i]\) 表示将所有后缀按照字典序从小到大排序,后缀开头为第 \(rk[i]\) 个字符的排名。

接下来我们会简称后缀 \(i\) 为后缀开头为第 \(i\) 个字符的后缀。

这两个数组满足一个性质:\(sa[rk[i]]=rk[sa[i]]=i\)(请自行理解)。

后缀数组的求法

\(O(n^2\log n)\) 的求法

标签:后缀,笔记,数组,sa,个字符,rk
From: https://www.cnblogs.com/lrx-blogs/p/18390445

相关文章

  • 【每日一题】LeetCode 1343.大小为K且平均值大于等于阈值的子数组数目(数组、滑动窗口)
    【每日一题】LeetCode1343.大小为K且平均值大于等于阈值的子数组数目(数组、滑动窗口)题目描述给定一个整数数组arr和两个整数k和threshold,要求找出数组中长度为k且平均值大于等于threshold的子数组的数量。输入格式arr:一个整数数组。k:子数组的长度。thres......
  • 图形数据检验工具R_SPSS实战笔记(二)
    数据分析领域初期需要特别注意,目前大多数的数据分析软件都要求数据的存储形式为"宽格式",即每一列都应当是一个变量,而每一行则代表一个单独的观测值。且需要“长格式”数据的时候,可以通过宽格式数据轻易进行转换;存储格式,推荐使用.text或.csv另外,任何形式的数据检验(异常值识别[缺......
  • PHP数组
    数组能够在单个变量中存储多个值数组可以在单个变量中存储多个值,并且您可以根据键访问其中的值。创建数组在PHP中,array()函数用于创建数组:在PHP中,有三种类型的数组:数值数组-带有数字ID键的数组关联数组-带有指定的键的数组,每个键关联一个值多维数组-包含一个......
  • [luoguP3809]后缀排序
    题意给定一个字符串,要求将它的所有后缀按照字典序排序,并按顺序输出每个后缀第一个字符的下标。sol这是后缀数组(SuffixArray,SA)的板子题。我们定义:\(s_{i\cdotsj}\)表示\(s\)中下标在\(i\)到\(j\)之间的子串。\(sa_i\)表示排名为\(i\)的后缀第一个字符的下标;\(......
  • 读书笔记(10)《生活蒙太奇》
    序言 我之所以叫它蒙太奇,是因为这是我用漫画呈现出来的片段,是由我的观察编辑而成,它们是我观察世界的样子。可是每位读者的性格不同,际遇不同,得到的感受也不一样,所以每个人读下来,蒙太奇剪辑的方式也不尽相同。我从我的角度把这些漫画故事组合成了这本书,但你可以按照自己的习惯和喜......
  • js 数组的常用方法:在头部插入,删除,尾部插入,删除
    arr.push(value),在数组的末尾添加一个或多个元素,并返回数组的新长度。arr.pop()删除索引值最大的元素,即删除数组末尾的元素,并返回被删除的元素。unshift(value)在数组的头部添加一个或多个元素,并返回数组的新长度shift()删除索引为0的元素,并返回删除的元素splice()方法会修......
  • 海康二次开发学习笔记9-通讯触发及模块列表获取
    通讯触发及模块列表获取模块列表获取获取流程中所有模块的模块名,添加下拉框用于显示模块名1.处理Combox2的DropDown事件///<summary>///模块列表获取///</summary>///<paramname="sender"></param>///<paramname=......
  • Buildroot构建Qt根文件系统-思维导图-学习笔记-基于正点原子阿尔法开发板
    Buildroot构建Qt根文件系统获取Buildroot源码Buildroot源码下载地址,https://buildroot.org/本次下载的是长期支持版本移动至ubuntu后解压tarxfbuildroot-2022.02.3.tar.gz解压后的Buildroot源码配置Buildroot安装显示图形菜单需要的库sudoapt-getin......
  • Datawhale X 李宏毅苹果书 AI夏令营 第五期 深度学习(进阶班)Task02 笔记分享
    文章目录Task2-1:《深度学习详解》-3.3&4&5自适应学习率(9页+38分钟)Part01:视频笔记训练技巧:自适应学习率(Adaptivelearningrate):学习率应该为每一个参数特质化:RootMeanSquare(均方根):......
  • 06.类-数组(array)和string
    6.类-数组(array)和string6.1数组数组是一组连续的内存位置,它们都具有相同的类型。为了指代数组中的特定位置或元素,我们指定数组的名称和特定元素在数组中的位置编号。数组名称遵循与其他变量名相同的约定。下标必须是整数或整数表达式,带下标的数组名是一个左值,它可以在赋值......