Số xâu con tốt

Đề bài

Mô tả

Cho một xâu nhị phân s (mỗi ký tự là 0 hoặc 1).

Gọi f(t) là giá trị thập phân của số được biểu diễn ở hệ nhị phân bởi xâu t (cho phép có các chữ số 0 đứng đầu). Ví dụ: f(011)=3, f(00101)=5, f(10)=2, f(000)=0, f(000100)=4.

Một xâu con liên tiếp slsl+1…sr được gọi là tốt nếu

r−l+1=f(slsl+1…sr).

Tức là độ dài của xâu con đúng bằng giá trị thập phân của nó khi đọc như số nhị phân (cho phép có các chữ số 0 đứng đầu).

Cho t truy vấn độc lập, với mỗi xâu s hãy đếm số xâu con tốt của s.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số truy vấn.
  • Mỗi dòng tiếp theo chứa một xâu s chỉ gồm các ký tự 0 và 1.

Dữ liệu ra

Với mỗi truy vấn, in ra một dòng chứa số xâu con tốt của s.

Ràng buộc

  • 1≤t≤1000
  • 1≤|s|≤2·105
  • ∑|s|≤2·105

Ví dụ

Input Output Giải thích
4
0110
0101
00001000
0001000
4
3
4
3
Với s=0110, bốn xâu con tốt là: s2=1 (độ dài 1, giá trị 1), s3=1, s3s4=10 (độ dài 2, giá trị 2), và s1s2s3=011 (độ dài 3, giá trị 3).
1
0101
3 Với s=0101: ba xâu con tốt là s2=1, s4=1, và s2s3=10 (độ dài 2, giá trị 2).

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0