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

Quốc gia nơ-ron

Đề bài

Mô tả

Một đất nước được tổ chức thành L tầng, mỗi tầng có đúng N thành phố. Ngoài ra có một điểm vào và một điểm ra.

  • Từ điểm vào có đường đi tới mọi thành phố của tầng 1. Chi phí đi tới thành phố thứ j của tầng 1uj.
  • Với hai tầng liên tiếp bất kỳ, mỗi thành phố của tầng trước nối tới mọi thành phố của tầng sau. Chi phí của cạnh đi vào thành phố thứ j của tầng sau luôn bằng vj: nó không phụ thuộc vào thành phố xuất phát, và mọi cặp tầng liên tiếp đều dùng chung bộ chi phí này.
  • Từ thành phố thứ j của tầng L có đường đi tới điểm ra với chi phí wj.

Một đường đi từ điểm vào tới điểm ra đi qua đúng một thành phố ở mỗi tầng, theo thứ tự tầng 1,2,,L. Chi phí của đường đi là tổng chi phí các cạnh trên đường đi đó. Hai đường đi được xem là khác nhau nếu dãy thành phố mà chúng đi qua khác nhau, kể cả khi tổng chi phí bằng nhau.

Hãy đếm số đường đi có tổng chi phí chia hết cho M. In ra kết quả theo modulo 109+7.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên N, L, M.
  • Dòng thứ hai chứa N số nguyên u1,u2,,uN: chi phí từ điểm vào tới từng thành phố của tầng 1.
  • Dòng thứ ba chứa N số nguyên v1,v2,,vN: chi phí đi vào từng thành phố khi chuyển giữa hai tầng liên tiếp.
  • Dòng thứ tư chứa N số nguyên w1,w2,,wN: chi phí từ từng thành phố của tầng L tới điểm ra.

Dữ liệu ra

Một số nguyên duy nhất: số đường đi có tổng chi phí chia hết cho M, lấy theo modulo 109+7.

Ràng buộc

  • 1N106
  • 2L105
  • 2M100
  • 0uj,vj,wjM

Ví dụ

Input Output Giải thích
2 3 13
4 6
2 1
3 4
2 23=8 đường đi. Hai đường có chi phí chia hết cho 13(2,1,1) với chi phí 6+2+2+3=13(2,1,2) với chi phí 6+2+1+4=13.
3 2 2
0 1 0
0 0 1
1 1 0
3 Với L=2, chi phí là ui1+vi2+wi2. Ta có vj+wj=1 với mọi j, nên chi phí chẵn chỉ khi ui1=1, tức i1=2. Ứng với 3 cách chọn i2, ta được 3 đường đi.
4 4 4
0 1 3 2
1 2 0 3
2 3 1 0
64 Trong 44=256 đường đi có đúng 64 đường có chi phí chia hết cho 4.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0