Thơ bò

Đề bài

Mô tả

Bessie đang tập làm thơ. Cô bò có một cuốn từ điển gồm N từ; từ thứ isi âm tiết và thuộc lớp vần ci. Hai từ vần với nhau khi và chỉ khi chúng thuộc cùng một lớp vần.

Một bài thơ gồm M dòng, mỗi dòng có đúng K âm tiết. Một dòng là một dãy từ có thứ tự (mỗi từ được dùng bao nhiêu lần tuỳ ý) sao cho tổng số âm tiết của các từ trong dãy đúng bằng K. Vần của một dòng là lớp vần của từ cuối cùng trên dòng đó.

Bessie đã chọn sẵn sơ đồ gieo vần: dòng thứ j được gán một chữ cái in hoa. Hai dòng mang cùng một chữ cái bắt buộc phải cùng vần. Hai dòng mang chữ cái khác nhau thì không bị ràng buộc gì, chúng có thể cùng vần hoặc không.

Hai bài thơ được coi là khác nhau nếu tồn tại một vị trí mà từ đứng ở đó khác nhau. Hãy đếm số bài thơ hợp lệ, lấy phần dư khi chia cho 109+7.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên N, M, K.
  • N dòng tiếp theo, dòng thứ i chứa hai số nguyên sici.
  • M dòng cuối, mỗi dòng chứa một chữ cái in hoa mô tả sơ đồ gieo vần.

Dữ liệu ra

Một số nguyên duy nhất: số bài thơ hợp lệ theo modulo 109+7.

Ràng buộc

  • 1N5000
  • 1M105
  • 1K5000
  • 1siK
  • 1ciN
  • Mỗi chữ cái trong sơ đồ gieo vần nằm trong khoảng từ A đến Z.

Ví dụ

Input Output Giải thích
3 3 10
3 1
4 1
3 2
A
B
A
960 Có tất cả 12 dòng đúng 10 âm tiết, trong đó 8 dòng kết thúc bằng một từ thuộc lớp vần 1 và 4 dòng kết thúc bằng lớp vần 2. Hai dòng mang chữ A phải cùng vần nên có 82+42=80 cách; dòng mang chữ B tự do nên có 12 cách. Đáp số 80×12=960.
3 3 4
4 1
2 2
3 3
A
B
A
4 Chỉ có 2 dòng đúng 4 âm tiết: một dòng gồm duy nhất từ 4 âm tiết (vần 1) và một dòng gồm hai lần từ 2 âm tiết (vần 2). Từ 3 âm tiết không thể kết thúc dòng nào vì 1 âm tiết còn lại không lấp được, nên lớp vần 3 có 0 dòng. Hai dòng A cùng vần cho 12+12+02=2 cách, dòng B cho 1+1+0=2 cách, tổng cộng 2×2=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