Đếm xâu nhị phân không có ba số 1 liên tiếp

Đề bài

Mô tả

Cho T truy vấn độc lập. Mỗi truy vấn cho một số nguyên m. Hãy đếm số xâu nhị phân (chỉ gồm các ký tự 0 và 1) độ dài m không chứa ba ký tự 1 liên tiếp (111).

Vì kết quả có thể rất lớn, in ra phần dư khi chia cho 109+7.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên T — số truy vấn.
  • T dòng tiếp theo, mỗi dòng chứa một số nguyên m.

Dữ liệu ra

In ra T dòng, dòng thứ i là số xâu nhị phân hợp lệ độ dài mi theo modulo 109+7.

Ràng buộc

  • 1≤T≤105
  • 1≤m≤106

Ví dụ

Input Output Giải thích
5
1
2
3
4
5
2
4
7
13
24
Với m=1: hai xâu 0 và 1. Với m=2: bốn xâu 00,01,10,11. Với m=3: tám xâu, trừ 111 còn 7. Với m=4: 16 xâu, loại 111? và ?111 — có 3 xâu bị loại (1110,1111,0111), còn 13.
3
10
100
1000000
504
621118180
455338646
Số xâu hợp lệ tăng nhanh theo m (xấp xỉ Tribonacci). Với m lớn cần lấy modulo.

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