后缀数组(后续)

后缀数组 Height

利用后缀数组快速求出2个后缀的lcp长度
lcp:最长公共前缀
lcp(suf(i),suf(j))
记Height[l] = 排名第(l-1)后缀和排名第l后缀的lcp长度
Height[l] = lcp(suf(SA[l-1]),suf(SA[l]))

l = 后缀suf(i)的排名
r = 后缀suf(j)的排名
结论:

两个子串最长公共前缀

lcp(suf(i),suf(j)) = min(Height[l+1]…Height[r] )
即两个后缀的lcp = 它们排名区间中Height的最小值
维护rmq

求Height数组

posted @ 2020-10-08 11:27  回归梦想  阅读(61)  评论(0编辑  收藏  举报