首页 > 其他 > 详细

C - The Number Of Good Substrings CodeForces - 1217C

时间:2019-10-01 23:38:00      阅读:134      评论:0      收藏:0      [点我收藏+]
技术分享图片

 

 

技术分享图片

 

 


#include <bits/stdc++.h> using namespace std; typedef long long ll; /* 给你一个字符串只有0和1,问你有多少个子串满足长度等于该子串的二进数值 开始我不知道如何暴力,后来想直接借助前面求得二进制值来往下求 但是还是不可以,tle 现在的思路是,直接找1的位置,然后求他左边有多少前导0,以此1往后延伸,不够就用前导0,因为要枚举所有1 所以不会有遗漏,而且从1开始的吗所以最多往后延伸18位1<<18大于它的长度了 */ const int maxn=2e5+10; int dis=18; char s[maxn]; int main() { int t; scanf("%d",&t); while(t--) { scanf("%s",s); int sum=0; int len=strlen(s); int pre=0; for(int i=0; i<len; i++) { if(s[i]==0) pre++; else { int r=i; int cnt=1; for(int j=0; j<dis; j++) { if(cnt<=pre+(r-i+1)) sum++; if(r==len-1) break; cnt=cnt*2+(s[++r]-0); } pre=0; } } printf("%d\n",sum); } return 0; }

 

C - The Number Of Good Substrings CodeForces - 1217C

原文:https://www.cnblogs.com/zhangzhenjun/p/11616332.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!