trang chủ / bài tập / blockmod

Khối chữ số modulo

Đề bài

Mô tả

Cho b khối, mỗi khối chứa cùng n chữ số (nằm trong khoảng 1 đến 9) được cho trong dữ liệu vào.

Bạn phải chọn đúng một chữ số từ mỗi khối, rồi ghép các chữ số đã chọn theo thứ tự khối thành một số nguyên lớn. Hãy đếm số cách chọn sao cho số nguyên thu được chia x dư đúng k. Vì kết quả có thể rất lớn, hãy in nó theo modulo 109+7.

Hai cách chọn được coi là khác nhau nếu tại một khối nào đó, vị trí của chữ số được chọn trong khối là khác nhau (kể cả khi giá trị của chữ số trùng nhau). Ví dụ, khối 3 5 6 7 8 9 5 1 1 1 1 5 có ba cách chọn chữ số 5 (vì chữ số 5 xuất hiện ba lần).

Dữ liệu vào

  • Dòng đầu chứa bốn số nguyên n, b, k, x cách nhau bởi dấu cách.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an — các chữ số trong mỗi khối.

Dữ liệu ra

In ra một số nguyên duy nhất: số cách chọn thoả mãn, lấy modulo 109+7.

Ràng buộc

  • 2n50000
  • 1b109
  • 0k<x100, x2
  • 1ai9

Ví dụ

Input Output Giải thích
3 2 1 2
3 1 2
6 Các số có thể tạo ra: 11,13,21,23,31,33. Cả 6 số đều chia 21.
3 2 1 2
6 2 2
0 Các số 22,26,62,66 đều chẵn nên không chia 21.
12 1 5 10
3 5 6 7 8 9 5 1 1 1 1 5
3 Chỉ có 1 khối, ta cần chọn chữ số chia 105 — đó là chữ số 5. Chữ số 5 xuất hiện 3 lần.

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