疯狂匹配题解

首先我们可以求出从每个L开始匹配,失配前最后一个匹配的位置,这个位置+1就是下一次匹配开始的位置,并且记录下来。
这一步用二分+哈希即可。
有了上面求的这个东西,我们就可以倍增了,用ST表存下L出发走2的次幂步能到的最后一个位置。
对于每一个询问,直接用倍增数组跳就好了。
这样记录从0出发的次数也很容易,就相当于是失配次数。
至于结束位置,可以用哈希+map来存储。
最终总复杂度为O(qlogm)

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 14:10
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务