寒假的时候看过一遍后缀数组,但是没成功。。。这次又鼓起勇气看起,先尽量达到会用它A一些模版题的程度吧!
有几个关键的数组:
1.后缀数组sa[i],排第i的后缀串是谁,数组值代表下标,以这个下标为首的后缀串。
2.rank[i],rank数组跟suff[i]相对应,suff[i]是排第i的在哪,rank[i]表示第i个开始的后缀串排第几,即rank[suff[i]]=i
3.height[i],height加强了后缀数组的威力,height[i]表示排名第i的后缀与排名第i-1的后缀的最长公共前缀。
LCP(最长公共前缀),LCP(i,j)表示后缀数组中第i个和第第j个后缀的最长公共前缀的长度,LCP定理:
LCP[i,j]=min{Height[k]|i+1=<k<=j};可以用RMQ来求区间内的最小值。
继续ing...