Đếm dãy con tốt
Đề bài
Mô tả
Một dãy số nguyên được gọi là mảng tốt nếu và . Nói cách khác, phần tử đầu tiên dương và bằng độ dài phần còn lại của mảng. Ví dụ: và là mảng tốt; , , thì không.
Một dãy số nguyên được gọi là dãy tốt nếu nó có thể được phân hoạch thành một hoặc nhiều mảng tốt liên tiếp nhau, sao cho mỗi mảng tốt là một đoạn con liên tiếp của dãy và mỗi phần tử của dãy thuộc đúng một mảng. Ví dụ: và là dãy tốt; và thì không.
Cho một dãy . Hãy đếm số dãy con (không nhất thiết liên tiếp) của dãy này là dãy tốt, lấy kết quả theo modulo .
Dữ liệu vào
- Dòng đầu chứa một số nguyên — độ dài dãy.
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
- In ra một số nguyên duy nhất là số dãy con là dãy tốt, theo modulo .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 1 1 |
2 | Hai dãy con tốt là (phân hoạch thành một mảng tốt độ dài 3) và (một mảng tốt độ dài 2). |
| 4 1 1 1 1 |
7 | Bảy dãy con tốt: , , , , , , . |
| 3 2 2 1 |
1 | Chỉ có là dãy tốt: ⇒ mảng tốt đầu có 3 phần tử là chính nó. |
Bình luận