C - グッドサブストリングCodeForcesの数 - 1217C

 

 

 

 


書式#include <ビット/ STDC H ++。> 使用して 名前空間はstd; typedefのロング ロングLL; / * あなたの0と1の文字列のみを与え、バイナリ値は、文字列の部分文字列に等しい長さを満たすためにどのように多くの子供たちを尋ね 、私は知りませんでしたどのように暴力、そして私が得BEGフロントアンダーとバイナリ値からの援助を指示したかった が、それでも、TLEはできません 、今アイデアは0をリードする左どのように多くの位置1に直接アクセスして、彼に依頼することです、1つの後でこの拡張は、それが十分ではありませんすべて1を列挙するように0をリードして、 そう全く漏れがない、バックエクステンション18までの長さを最初から実行すると、その18 << 1より大きい * / CONSTの INT MAXN 2E5 + = 10 ; INT DIS = 18である; char型[MAXN] Sと、 int型のmain() { int型T; scanfの(" %のD "、&T)、 一方(T-- { scanf関数(" %sの" 、S); int型の合計= 0 ; INT LEN = STRLEN(S)。 int型前= 0 ; 以下のためにint型 i = 0 ; iがLEN <; iは++ { もし、(S [I] == ' 0 ' プレ ++ { INT R = I。 int型 CNT = 1 ; 以下のためのint型 J = 0 ; J <DIS; J ++ { 場合(CNT <=プレ+(R-I + 1 )) の和 ++ もし(rは== len- 1 破ります CNT = CNT * 2 +(S [++ R] - ' 0 ' )。 } 事前 = 0 } } のprintf(" %d個の\ n " 、合計)。 } 戻り 0; }

 

おすすめ

転載: www.cnblogs.com/zhangzhenjun/p/11616332.html