好题: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.

全部评论

相关推荐

01-30 22:03
门头沟学院 Java
用微笑面对困难:我滴妈,【俩月】【实习】【主管】仨debuff吃满了,独立设计开发的项目写了绝大占比的运营板块,你独立开发,那维护、问题复盘、日志更新、bug、策划书全是自己整的? 不建议写那么大,可以从小出发更容易
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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