现在的位置: 首页 > 综合 > 正文

pku2406 kmp/后缀数组

2012年09月24日 ⁄ 综合 ⁄ 共 314字 ⁄ 字号 评论关闭
 

Pku2406

 

求一个串最多可以分成几个前缀串的k次连接。。。如abab最多可以由ab两次连接。。。

 

 

这题本来是kmp的一道水题,但也可以用后缀数组来做,先求出height数组,然再维护所有lcp(rank[0], rank[j]),由于用RMQ需要开best[20][maxn]这么大的数组会ME,所以只能想其他方法,就是维护height[rank[0]]左右与它的最小值存在一个一维数组里面,就是lcp(rank[0],rank[j])。然后枚举所求前缀的长度即可,理论上可以O(n),但实际上2700+ms,比kmp慢多了。。。如果某个后缀的前面部分的长度能整除串S的长度len,而且该后缀全部与S匹配完就满足条件。。。

抱歉!评论已关闭.