Big-O Coding Logo
Big-OCoding
Khóa họcLộ trìnhLuyện phỏng vấnThi đấuBài tậpBảng xếp hạngAI Coding LabSắp ra mắtPremium
Quay lại
Đề bài
|
Lời giải
|
Bài nộp
|
Thảo luận (0)

Trò chơi ô chữ

Nguồn: Big-O

Hard 512MB

Nhân dịp kỷ niệm 15 năm thành lập VNG, nhận thấy đa số người tham gia đều là các lập trình viên xuất sắc, ban tổ chức đã sáng tạo ra trò chơi đố chữ như sau:

Trò chơi diễn ra trên một bảng ô vuông hình chữ nhật kích thước m×nm \times nm×n. Các dòng của bảng được đánh số từ 111 đến mmm từ trên xuống dưới, và các cột được đánh số từ 111 đến nnn từ trái qua phải. Ô nằm tại giao điểm của dòng iii và cột jjj được gọi là ô (i,j)(i, j)(i,j). Mỗi ô trên bảng chứa một ký tự.

Khi trò chơi bắt đầu, người chơi được cho một từ khóa PPP (là một xâu ký tự). Nhiệm vụ của người chơi là xuất phát từ ô (1,1)(1, 1)(1,1), kết thúc tại ô (m,n)(m, n)(m,n) và tìm một đường đi trên bảng sao cho đường đi đó chứa từ khóa PPP. Tại mỗi bước, người chơi có thể di chuyển sang ô kề cạnh bên phải hoặc ô kề cạnh bên dưới. Khi kết thúc trò chơi, người chơi nhận được một xâu ký tự được tạo thành bằng cách ghép nối lần lượt các ký tự trên các ô thuộc đường đi. Người chơi giành chiến thắng nếu từ khóa PPP xuất hiện trong xâu ký tự thu được, nghĩa là PPP khớp với một xâu con liên tiếp của xâu đó.

Ban tổ chức muốn biết có bao nhiêu đường đi khác nhau có thể giúp người chơi giành chiến thắng. Hãy giúp ban tổ chức tính toán nhé!

Yêu cầu: Cho bảng chữ nhật kích thước m×nm \times nm×n và từ khóa PPP, hãy đếm số lượng đường đi khác nhau giúp người chơi giành chiến thắng. Hai đường đi được coi là khác nhau nếu tồn tại ít nhất một ô thuộc đường đi này nhưng không thuộc đường đi kia. Vì số lượng đường đi có thể rất lớn, kết quả cần được lấy phần dư cho 109+710^9+7109+7.

Đầu vào:

  • Dòng đầu tiên chứa hai số nguyên dương m,nm, nm,n (1≤m,n≤1001 \leq m, n \leq 1001≤m,n≤100);
  • Dòng thứ hai chứa từ khóa PPP, là một xâu gồm từ 111 đến m+n−1m+n-1m+n−1 chữ cái in hoa trong bảng chữ cái tiếng Anh từ 'A' đến 'Z';
  • mmm dòng tiếp theo mô tả bảng chữ, mỗi dòng chứa một xâu gồm nnn chữ cái in hoa từ 'A' đến 'Z'.

Đầu ra: In ra một số nguyên duy nhất là số lượng đường đi đếm được theo modulo 109+710^9+7109+7.

Subtask (tham khảo):

  • 50% số test có m,n≤10m, n \leq 10m,n≤10.
  • 50% số test còn lại có m,n≤100m, n \leq 100m,n≤100.

Ví dụ 1:

Đầu vào:

3 3
VNG
VNG
VVV
GNG

Đầu ra:

3
Chỉ viết thân hàm, hệ thống tự lo Input/Output
Bài này không hỗ trợ chế độ Viết chương trình
Bật gợi ý code
|
Loading...
Test Case
|
Output
Ln 1, Col 1
Đang tải test ví dụ...