Chuỗi DNA
Đề bài
Mô tả
Alice đang nghiên cứu về mã di truyền, cô cần tạo ra các chuỗi DNA được biểu diễn bằng xâu nhị phân. Có một số mẫu nhị phân ngắn, được gọi là "mảnh vỡ cấm" có tính chất không ổn định, nếu chúng xuất hiện trong chuỗi DNA như là một xâu con liên tiếp, chúng sẽ gây ra một phản ứng dây chuyền phá hủy chuỗi.
Alice đã xác định được mảnh vỡ cấm . Để đảm bảo sự ổn định, Alice phải tạo ra các chuỗi DNA nhị phân có độ dài đúng bằng mà tránh hoàn toàn tất cả mảnh vỡ cấm, tức là không mảnh vỡ cấm nào xuất hiện trong chuỗi như một xâu con liên tiếp.
Yêu cầu: Cho và các xâu nhị phân , hãy giúp Alice đếm số lượng chuỗi DNA nhị phân tránh tất cả mảnh vỡ cấm.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và .
- Dòng thứ trong dòng tiếp theo chứa xâu nhị phân (độ dài các xâu không vượt quá ).
Dữ liệu ra
In ra một số nguyên là giá trị , trong đó là số chuỗi DNA nhị phân thỏa mãn và là phép toán chia lấy dư.
Ràng buộc
- , ;
- mỗi là xâu khác rỗng chỉ gồm các kí tự và , (các mảnh vỡ có thể trùng nhau).
Subtasks
- Có số test thỏa mãn: .
- số test khác thỏa mãn: .
- số test còn lại không có ràng buộc nào thêm.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 1 0 |
1 | Chỉ có xâu 11 không chứa mảnh vỡ 0. (Đề gốc ghi đáp án , không khớp với định nghĩa xâu con liên tiếp; đã sửa thành .) |
| 2 2 00 10 |
2 | Có xâu độ dài : 00 và 10 bị cấm, còn lại 01 và 11. |
| 5 2 11 0110 |
13 | Ví dụ bổ sung (không có trong đề gốc). Các xâu độ dài không có hai kí tự liền nhau có xâu; mọi xâu chứa 0110 đều chứa 11 nên mảnh vỡ thứ hai không loại thêm xâu nào. |
Bình luận