Chọn K đoạn con
Đề bài
Mô tả
Cho dãy số nguyên .
Bạn cần chọn ra đoạn con:
thoả mãn đồng thời hai điều kiện:
- Các đoạn rời nhau và xếp theo thứ tự tăng dần: .
- Mỗi đoạn có độ dài đúng bằng : với mọi .
Hãy chọn sao cho tổng các phần tử nằm trong đoạn đó là lớn nhất, tức là cực đại hoá
Lưu ý rằng bắt buộc phải chọn đủ đoạn, kể cả khi một số phần tử trong đoạn mang giá trị nhỏ. Ràng buộc bảo đảm luôn tồn tại ít nhất một cách chọn hợp lệ.
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , .
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
In ra một số nguyên duy nhất là tổng lớn nhất có thể.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 2 1 1 2 3 4 5 |
9 | Chỉ chọn một đoạn dài . Đoạn tốt nhất là với tổng . |
| 7 1 3 2 10 7 18 5 33 0 |
61 | Mỗi đoạn dài nên chỉ cần lấy ba phần tử lớn nhất: . |
| 4 2 2 1 10 10 1 |
22 | Phải chọn đủ hai đoạn dài và chúng không được chồng lên nhau, nên cách duy nhất là và , cho tổng . Chọn tham lam đoạn nặng nhất trước sẽ không còn chỗ cho đoạn thứ hai. |
Bình luận