Bữa Tiệc Hoa

Đề bài

Mô tả

Một bữa ăn được biểu diễn bằng một dãy các bông hoa, mỗi bông có màu đỏ hoặc màu trắng. Để bữa ăn ngon, có một quy tắc: các bông hoa trắng chỉ được phép xuất hiện thành từng đoạn liên tiếp có độ dài đúng bằng k.

Nói cách khác, trong dãy hoa, mọi đoạn cực đại gồm toàn các bông hoa trắng liên tiếp đều phải có độ dài là bội của k.

Với mỗi truy vấn gồm hai số ab, hãy đếm tổng số dãy hoa hợp lệ có độ dài nằm trong khoảng từ a đến b (tính cả hai đầu mút). Vì kết quả có thể rất lớn, hãy in ra phần dư khi chia cho 109+7.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên tk — số truy vấn và độ dài đoạn hoa trắng bắt buộc.
  • t dòng tiếp theo, mỗi dòng chứa hai số nguyên aibi mô tả truy vấn thứ i.

Dữ liệu ra

In ra t dòng, dòng thứ i là số dãy hoa hợp lệ có độ dài từ ai đến bi, lấy phần dư cho 109+7.

Ràng buộc

  • 1t,k105
  • 1aibi105

Ví dụ

Input Output Giải thích
3 2
1 3
2 3
4 4
6
5
5
Với k=2: độ dài 1 có 1 cách (Đ); độ dài 2 có 2 cách (ĐĐ, TT); độ dài 3 có 3 cách (ĐĐĐ, ĐTT, TTĐ). Truy vấn 1..3 cho 1+2+3=6. Truy vấn 2..3 cho 2+3=5. Độ dài 4 có 5 cách nên truy vấn 4..4 cho 5.
1 1
1 3
14 Với k=1 mọi bông hoa trắng đều hợp lệ, nên mỗi vị trí có 2 lựa chọn: độ dài 1, 2, 3 lần lượt có 2,4,8 cách, tổng 2+4+8=14.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0