好题:KMP应用,数学-Om Nom and Necklace

传送门:https://vjudge.net/problem/CodeForces-526D

题目大意:对于字符串的每一个前缀,询问是否能够看成 k + 1 个 A 和 k个B交替形成的字符串。


题目思路: KMP 找循环节 + 数学推导

着实被这个题解法秀到了.

首先想要答案存在,将 S = A + B。这个S肯定是这个前缀的一段循环节。

我们知道最小循环节为: 

我们知道:

由于n是定值,那么 就是求是否存在一个正整数 q :


所以接下来就判断区间中是否包含正整数可以将左端点的值L向上取值,右端点的值R向下取值,判断 L <= R.

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 11:29
已编辑
斯卡蒂味的鱼汤:知道你不会来数马,就不捞你😂最近数马疯狂扩招,招聘要求挺低的,你能力肯定够,应该就是因为太强了,知道你不会来才不捞你
投递腾讯云智研发等公司7个岗位
点赞 评论 收藏
分享
链接
海梨花:我说话难听,你这简历跟没写没啥区别,搜搜别人的简历,用心写,不要随随便便就结束了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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