(height) 数组的应用
-
求两个子串的最长公共前缀
引理:(lcp(sa[i],sa[j]) = min(height[i+1...j]))
可用 (RMQ) 求解
-
比较一个字符串的 两个子串的大小关系
(A= S[a...b]) 和 (B = S[c...d])
如果 (lcp(a,c)>=min(A,B)) ,那么 (|A|<|B|) 则 (A<B)
否则,如果 (rk[a]<rk[b]) ,则 (A<B)
-
计算不同子串的数量
(ans = frac{n*(n+1)}{2} - sum_{i=2}^n height[i])