Bí mật của trại Felicity
Đề bài
Mô tả
Cho một xâu nhị phân có độ dài (mỗi ký tự là hoặc ).
Có vị trí có thể đặt nhát cắt: trước , giữa và , giữa và , ..., và sau .
Xét một tập gồm nhát cắt () đặt tại vị trí khác nhau. Khi đó giữa hai nhát cắt liên tiếp sẽ có một xâu con nhị phân, tạo thành đúng xâu con. Các ký tự nằm trước nhát cắt đầu tiên và sau nhát cắt cuối cùng bị bỏ đi (không tính đến). Mỗi xâu con được đọc như một số nhị phân (cho phép chữ số ở đầu).
Gọi là số lớn nhất trong số thu được. Tập nhát cắt được gọi là hợp lệ nếu tất cả các số thu được đều dương và tập hợp các số thu được chứa tất cả các số nguyên từ đến .
Ví dụ với xâu và nhát cắt tạo thành:
thu được xâu con ứng với các số . Ở đây ; mọi số đều dương và ta có đủ các số từ đến , nên đây là một tập nhát cắt hợp lệ.
Gọi là số tập hợp lệ gồm đúng nhát cắt. Hai tập nhát cắt được coi là khác nhau nếu có một nhát cắt thuộc tập này nhưng không thuộc tập kia.
Hãy tính
và in ra theo modulo .
Dữ liệu vào
- Dòng thứ nhất chứa số nguyên — độ dài của xâu.
- Dòng thứ hai chứa xâu nhị phân độ dài .
Dữ liệu ra
- In ra một số nguyên duy nhất: giá trị theo modulo .
Ràng buộc
- .
- Xâu chỉ gồm các ký tự và .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 1011 |
10 | Các tập nhát cắt hợp lệ: kích thước 2: |1|011, 1|01|1, 10|1|1, 101|1|; kích thước 3: |1|01|1, |10|1|1, 10|1|1|, 1|01|1|; kích thước 4: |10|1|1|, |1|01|1|. Vậy , , và . |
| 2 10 |
1 | Chỉ có một tập hợp lệ (kích thước 2): |1|0, thu được số . Vậy , các khác bằng và . |
Bình luận