有没有大神解答一下这道题,求求

刚开始,你拥有一个长度为n的只有'0'和'1'构成的字符串s。 现在,我们想要知道在这个字符串中,有多少组x,y(1 <= x <= y <= n)使得至少存在一组a, b使得1 <= a, b <= n 并且 x <= a < 2 * b + a <= y 并且 s_a == s_(a+b) == s_(2*a+b)。 s_X表示s的第X个字符。

输入描述:

输入一个字符串s,(1 <= |s| <= 200000)(|s|表示s的长度)。

输出描述:

输出有几组x,y满足条件
示例1

输入

复制 010101
010101

输出

复制 3
3

说明

第一组中,可以取到x,y分别为1 5\1 6\2 6
示例2

输入

复制 11001100
11001100

输出

复制 0
0

说明

第二组中不存在任何满足条件的x,y

#笔试题目#
全部评论
点赞 回复 分享
发布于 2020-12-30 11:13
对于每个a,b来说,一但a,b符合条件,那么[0,a]和[2b+a,n]这段区间都是可以作为答案的,我们每次计算下贡献的答案即可。对于每个点来说判断一下它作为a位子是不是符合条件,假如符合的话就计算答案,这里需要处理一下重复的情况~
点赞 回复 分享
发布于 2020-12-30 11:35
天翼云科技有限公司
校招火热招聘中
官网直投

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务