DHBB 2026 - DX16 - 10 - Phục hồi thể lực
Xem dạng PDFTrong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Vận động viên điền kinh Bờm đang tham gia chuyên tập huấn cường độ cao kéo dài ~n~ ngày. Để duy trì phong độ đỉnh cao và tránh các chấn thương đáng tiếc, mỗi ngày Bờm bắt buộc phải sử dụng thiết bị hồi phục công nghệ cao.
Hệ thống hồi phục hoạt động theo các gói đăng ký trả phí: Mỗi khi Bờm đăng ký một lần, anh ấy sẽ được sử dụng thiết bị trong ~k~ ngày liên tiếp kể từ ngày đăng ký. Hệ thống này có hai gói hồi phục chuyên biệt:
Gói 1: Chuyên hồi phục cơ bắp (Muscle Recovery).
Gói 2: Chuyên hồi phục hệ thần kinh (Neural Recovery).
Lịch tập luyện của Bờm đã được lên sẵn, mỗi ngày ~i~ ~(1 \le i \le n)~ yêu cầu một loại hồi phục cụ thể để khớp với khối lượng vận động:
Nếu ~S_i =~ '1': Ngày thứ ~i~ chỉ có thể hồi phục trên gói ~1~.
Nếu ~S_i =~ '2': Ngày thứ ~i~ chỉ có thể hồi phục trên gói ~2~.
Nếu ~S_i =~ 'B': Ngày thứ ~i~ có thể hồi phục trên gói ~1~ hoặc gói ~2~ đều được.
Yêu cầu: Hãy giúp Bờm tính toán số lần đăng ký (mua dịch vụ trong ~k~ ngày) ít nhất để đảm bảo tất cả ~n~ ngày tập huấn đều được hồi phục đúng loại gói phục hồi cần thiết. Biết rằng tại một thời điểm, Bờm có thể đang trong hạn dùng của nhiều gói đăng ký khác nhau, nhưng mỗi ngày chỉ cần ít nhất một gói phù hợp là đủ.
Input
Dòng đầu chứa số ~n~, ~k~ ~(1 \le k \le n \le 4 \cdot 10^5)~.
Dòng thứ hai chứa xâu ~s~ gồm ~n~ kí tự, kí tự ~s_i~ mô tả ngày thứ ~i~ chỉ có thể dùng gói ~1~ nếu ~s_i =~ 1, chỉ có thể dùng gói ~2~ nếu ~s_i =~ 2, và có thể dùng cả hai gói nếu ~s_i =~ B.
Output
Ghi ra một dòng là số lần đăng kí cần sử dụng.
Scoring
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | ~20\%~ | ~n \le 20, k \le 10~ |
| 2 | ~20\%~ | ~n \le 1000, k \le 10~ |
| 3 | ~20\%~ | ~n \le 10^5, k \le 10~ |
| 4 | ~20\%~ | ~n \le 10^5, k \le 200~ |
| 5 | ~20\%~ | Không có ràng buộc gì thêm |
Sample Input 1
3 2
121
Sample Output 1
3
Sample Input 2
8 3
1B21B212
Sample Output 2
5
Bình luận