后缀数组吼啊
(据说sam更好啊等我肝完后缀数组就去看sam
之前学了一遍倍增又忘了
论文中的变量名简直不让人学会
把下标和含义说清楚的博客
所以我的板子一定要给数组含义
rk_[i]=j表示后缀i的排名
rk1[]中会有相同的排名,但是sa[]的下标(也就是排名)是没有相同的
sa[i]=j表示排名i的后缀
对后缀i,lcp[i]>=lcp[i-1]+1
多次求sa的话记得先把cnt清空
新板子
hgt[i]表示排名i和排名i-1的后缀的lcp
倍增的排序用的是基数排序
基数排序的第一关键字用计数排序。。
hihocoder上有四道后缀数组经典应用题
hiho1403 后缀数组一·重复旋律 最长可重叠重复K次子串(单调队列)
hiho1407 后缀数组二·重复旋律2 最长不可重叠重复子串
hiho1415 后缀数组三·重复旋律3 最长公共子串
hiho1419 后缀数组四·重复旋律4 重复次数最多的连续字串
错了好多次就是st_rev和st打错了
重写了一遍
|
|