CF1217C

题意:

给定一个01串,一个good01串的定义是这个01串所代表的二进制数字刚好等于它的长度,允许前导零,问这个01串当中有几个good子串

解法:

枚举每一段连续的 $ 0 $ ,$ num_0 $ 为 $ 0 $ 的个数,后面的数值为 $ res $ ,只要 $ res \geq len$ , $ len $ 是二进制下区间长度,并且 $ res \leq len+num_0 $ ,则会产生答案,因为前导 $ 0 $ 可以匹配,但如果这样不行,直接break。

CODE:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath> using namespace std; #define LL long long
#define N 200010 char ch[N];
int T,len; int main() {
scanf("%d",&T);
while(T--) {
scanf("%s",ch + 1);
len = strlen(ch + 1);
int num_0 = 0;
LL ans = 0LL;
for(int i = 1 ; i <= len ; i++) {
if(ch[i] == '0') num_0++;
else {
int res = 0;
for(int j = i ; j <= len && res <= num_0 + (j - i + 1) ; j++) {
res = 2 * res + ch[j] - '0';
if (res >= (j - i + 1) && res <= (num_0 + j - i + 1)) ans++;
else break;
}
num_0 = 0;
}
}
printf("%lld \n",ans);
}
//system("pause");
return 0;
}

CF1217C的更多相关文章

随机推荐

  1. ajax格式,转入后台

    setInterval(function(),时间)定时重复发送请求

  2. Linux Ubuntu XShell连接虚拟机问题记录

    我们先用ip addr / ifconfig查看虚拟机ip地址,然后到windows下的cmd中ping 一下对应地址 一般是可以ping通的. 然后用Xshell或者其他工具连接虚拟机. 如果连不上 ...

  3. 使用vs编写arduino项目

    说实话,arduino官方自带的编辑器有时候用的真不爽.所以直接使用vs开发arduino项目,用起来真爽,一直使用一直爽. 不多废话,直接上图,三部曲结束,搞定,收工. 我用的是vs2015版本的. ...

  4. STM32窗口看门狗WWDG库函数的一点思考

    WWDG当前计数器的值以及激活位和WWDG_CR这个寄存器相关.如下图所示: 而STM32f10x的库函数提供了两种设置WWDG_CR[0:6]位的方式. WWDG_SetCounter方法 #def ...

  5. sqlserver 拼接字符串

    SELECT CAST(USER_ID AS VARCHAR) + ',' FROM dbo.AUTH_USER FOR XML PATH('');

  6. springboot中使用cache和redis

    知识点:springboot中使用cache和redis (1)springboot中,整合了cache,我们只需要,在入口类上加 @EnableCaching 即可开启缓存 例如:在service层 ...

  7. 深入理解flex布局的flex-grow、flex-shrink、flex-basis

    flex-basis用来设置初始的宽度(或者高度),优先级高于width flex-grow用来设置flex容器内 当还有剩余宽度(或高度)时, 子元素的缩放比例. 同理 flex-shrink 用来 ...

  8. [唐胡璐]Selenium技巧- 如何处理Table

    由于webdriver中没有专门的table类,所以我们需要简单的封装出一个易用易扩展的Table类来帮助简化代码。 以下是我之前用C#语言来实现的一个简单的封装: 只是一个大概的思路,有些具体实现就 ...

  9. js中in关键字的使用方法

    1.for...in 对数组或对象的循环/迭代操作 对于数组循环出来的是数组元素:对于对象循环出来的是对象属性 2.判断对象是否是数组/对象的元素/属性 格式:(变量 in 对象) 当‘对象’是数组时 ...

  10. linux命令集合(二)

    yum源的配置 yum  得配置yum源,配置阿里云的 两个 yum源  ,阿里云的yum源中,会有 mariadb的软件包   阿里云的yum仓库中,mariadb版本如下 mariadb      ...