trang chủ / đề bài / dreamseq

Dãy yêu thích của Dreamoon

Đề bài

Mô tả

Cho hai số nguyên d và m. Hãy đếm số dãy a thỏa mãn đồng thời các điều kiện sau:

  • Độ dài của a là n, với n≥1.
  • 1≤a1<a2<…<an≤d.
  • Xét dãy b có cùng độ dài n được định nghĩa bởi b1=a1 và bi=bi−1⊕ai với mọi i>1, trong đó ⊕ là phép XOR (hoặc loại trừ) trên bit. Khi đó dãy b phải thỏa mãn b1<b2<…<bn.

Vì số dãy hợp lệ có thể rất lớn, hãy in ra kết quả theo modulo m.

Lưu ý rằng m không nhất thiết là số nguyên tố.

Dữ liệu vào

  • Dòng đầu tiên chứa một số nguyên t — số lượng bộ dữ liệu.
  • t dòng tiếp theo, mỗi dòng chứa hai số nguyên d và m.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng số dãy a hợp lệ, lấy theo modulo m.

Ràng buộc

  • 1≤t≤100
  • 1≤d,m≤109

Ví dụ

Input Output Giải thích
4
1 1000000000
2 999999999
3 99999998
10 1
1
3
5
0
Với d=1 chỉ có một dãy [1]. Với d=2 có ba dãy: [1],[2],[1,2]. Với d=3 có năm dãy: [1],[2],[3],[1,2],[1,3]; dãy [2,3] không hợp lệ vì b=[2,1] không tăng. Trường hợp cuối lấy modulo 1 nên kết quả là 0.
2
7 9994
10 99995
29
119
Với d=7 có 29 dãy hợp lệ, với d=10 có 119 dãy hợp lệ.

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