其他分享
首页 > 其他分享> > 后缀数组、后缀自动机学习笔记(待填坑)

后缀数组、后缀自动机学习笔记(待填坑)

作者:互联网

后缀数组、后缀自动机学习笔记

后缀数组

定义

我们约定字符串 \(s\) 的后缀 \(i\) 指 \(s_{i\dots n}\)。

后缀数组(Suffix Array)主要是两个数组 \(sa\) 和 \(rk\),\({sa}_i\) 表示后缀排序后第 \(i\) 小的后缀编号,\({rk}_i\) 表示后缀 \(i\) 的排名。

显然,\({sa}_{{rk}_i}={rk}_{{sa}_i}=i\)。

例如对字符串 \(\textrm{aabaaaab}\) 的后缀排序如下:

\[\begin{array}{c:cccccccc} rk & 4 & 6 & 8 & 1 & 2 & 3 & 5 & 7 \\ s & \textrm{a} & \textrm{a} & \textrm{b} & \textrm{a} & \textrm{a} & \textrm{a} & \textrm{a} & \textrm{b} \\ \hline {sa}_1=4 & \textrm{a} & \textrm{a} & \textrm{a} & \textrm{a} & \textrm{b} & & & \\ {sa}_2=5 & \textrm{a} & \textrm{a} & \textrm{a} & \textrm{b} & & & & \\ {sa}_3=6 & \textrm{a} & \textrm{a} & \textrm{b} & & & & & \\ {sa}_4=1 & \textrm{a} & \textrm{a} & \textrm{b} & \textrm{a} & \textrm{a} & \textrm{a} & \textrm{a} & \textrm{b} \\ {sa}_5=7 & \textrm{a} & \textrm{b} & & & & & & \\ {sa}_6=2 & \textrm{a} & \textrm{b} & \textrm{a} & \textrm{a} & \textrm{a} & \textrm{a} & \textrm{b} \\ {sa}_7=8 & \textrm{b} & & & & & & & \\ {sa}_8=3 & \textrm{b} & \textrm{a} & \textrm{a} & \textrm{a} & \textrm{a} & \textrm{b} & & \\ \end{array} \]

求法

待填坑。

标签:后缀,填坑,textrm,数组,sa,自动机,array,rk
来源: https://www.cnblogs.com/ruierqwq/p/SA-SAM.html