阅读背景:

后缀数组模板第一版

来源:互联网 
/*---------------倍增算法+RMQ后缀数组模板--------------

输入:从0开始的字符串g,长度len最大为10^6
输出:
 sa[]表示:n 个后缀从小到大进行排序之后把排好序的后缀的开头位置顺
 次放入 sa 中,sa[i]表示排第i位的字符串开头是sa[i],因为添加了一个结尾0,所以sa[0]=len
 height 数组(h[]):定义 h[i]=suffix(sa[i-1])和 suffix(sa[i])的最长公
 共前缀,也就是排名相邻的两个后缀的最长公共前缀。
 mrank[i]表示:以i位开头的字符串,排名为mrank[i]。mrank[len]=0;
 cal(x,y):查询g[b]g[b+1]...g[len-1]与g[d]g[d+1]...g[len-1]的最大前缀数。
复杂度:空间复杂度33*len,时间复杂度,建立后缀数组为len*log(len),若不需要建立RMQ为len
 
-----------------------------------------------------------------倍增算法+RMQ后缀数组模板------------



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: