TST 2023 - Bài 2

Xem dạng PDF

Gửi bài giải

Điểm: 1,80 (OI)
Giới hạn thời gian: 10.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Kỳ thi chọn đội tuyển Olympic 2023
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Xét chuỗi hạt ~S~ có ~n~ hạt, mỗi hạt có thể có màu trắng hoặc màu đen. Ta có thể biểu diễn chuỗi hạt như một xâu nhị phân ~S~ độ dài ~n~, trong đó ~0~ biểu diễn cho màu trắng và ~1~ biểu diễn cho màu đen. Các vị trí trên chuỗi hạt được đánh số bắt đầu từ ~0~.

Xét các định nghĩa sau:

  • Hai chuỗi hạt ~S~ và ~T~ được gọi là tương đồng nếu tồn tại giá trị ~j~ ~(0 \le j \le n - 1)~ sao cho ~S_i = T_{(i + j) \bmod n}~ với mọi ~0 \le i \le n - 1~.

  • Hai chuỗi hạt ~S~ và ~T~ được gọi là đối xứng nếu xâu ~S~ và xâu đảo ngược của xâu ~T~ là tương đồng.

Cho hai số nguyên dương ~n~, ~k~ và xâu nhị phân ~P~ độ dài ~k~. Cần tìm một tập ~U~ gồm các chuỗi hạt độ dài ~n~ thỏa:

  • Mọi xâu biểu diễn của các chuỗi hạt đều có tiền tố độ dài ~k~ là xâu ~P~.

  • Mọi cặp chuỗi hạt trong tập không tương đồng hay đối xứng nhau.

  • Tập ~U~ có nhiều chuỗi hạt nhất có thể.

Bạn cần cho biết độ dài lớn nhất của tập ~U~ có thể tạo ra.

Input

Dòng đầu tiên gồm hai số nguyên dương ~n~, ~k~ ~(1 \le n \le 10^9, 1 \le k \le min(n, 20))~.

Dòng thứ hai gồm một xâu ~P~ độ dài ~k~ chỉ gồm các kí tự ~0~ và ~1~.

Output

In ra kích thước lớn nhất của tập ~U~ có thể có. Vì đáp án có thể rất lớn, in ra đáp án modulo ~10^9+7~.

Scoring

Subtask Điểm Giới hạn
1 ~11~ ~n\le 22~
2 ~13~ ~k = 1, n \le 10^5~
3 ~12~ ~k = 2, n \le 10^5~, ~n~ là số nguyên tố
4 ~20~ ~n \le 10^5~
5 ~20~ ~n~ là số nguyên tố
6 ~24~ Không có ràng buộc gì thêm

Sample Input 1

6 3
001

Sample Output 1

7

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.