pku2406 kmp/后缀数组

 

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匹配完就满足条件。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值