后缀数组 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数组