trang chủ / đề bài / dhbb23_cntt_10_c

Xếp bi

Đề bài

Mô tả

Cho một bảng hình chữ nhật kích thước M×N (M hàng, N cột) và 4 loại bi: xanh, đỏ, tím, vàng với số lượng không giới hạn.

Yêu cầu: Hãy đếm số cách xếp các viên bi vào bảng M×N sao cho mỗi ô chứa đúng một viên bi và trên mỗi hàng phải có ít nhất k loại bi khác nhau, biết rằng hai cách xếp được gọi là khác nhau nếu có ít nhất một ô chứa hai loại bi khác nhau trong hai cách xếp đó.

Vì số cách rất lớn nên chỉ cần in ra phần dư của kết quả khi chia cho 109+7. Nếu không có cách xếp nào thỏa mãn (chẳng hạn khi k>N) thì in ra 0.

Dữ liệu vào

Một dòng duy nhất gồm ba số nguyên dương M, N, k, các số được ghi cách nhau bởi dấu cách.

Dữ liệu ra

In ra một số nguyên duy nhất là số cách xếp thỏa mãn yêu cầu, lấy phần dư khi chia cho 109+7.

Ràng buộc

  • 1≤M,N≤106.
  • 1≤k≤4.
  • Có 30% số test với M=1, N≤30, k=1.
  • Có 30% số test với 1≤M,N≤103, 1≤k≤4.
  • Có 40% số test với 1≤M,N≤106, 1≤k≤4.

Ví dụ

Input Output Giải thích
1 2 1 16 Bảng có một hàng gồm 2 ô, mỗi ô chọn một trong 4 loại bi: 4·4=16 cách, cách nào cũng có ít nhất 1 loại bi.
2 3 3 576 Một hàng 3 ô có ít nhất 3 loại bi khác nhau thì 3 ô có 3 loại đôi một khác nhau: 4·3·2=24 cách. Hai hàng độc lập nên có 242=576 cách.
3 2 3 0 Mỗi hàng chỉ có 2 ô nên không thể có 3 loại bi khác nhau.

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