[Buổi 13][Thiết kế tham lam][HW] Bài 3: Chi phí ghép kế hoạch phân đoạn
Chi phí ghép kế hoạch phân đoạn
Bối cảnh và bài toán
Một thanh dài x cần được chia thành n đoạn có độ dài đã biết. Mỗi lần cắt một thanh hiện tại thành hai phần, chi phí bằng độ dài thanh bị cắt. Có thể nhìn ngược quá trình: bắt đầu từ các đoạn cuối cùng và ghép hai đoạn thành một; mỗi lần ghép cũng trả chi phí bằng tổng độ dài.
Yêu cầu
Tìm tổng chi phí nhỏ nhất.
Input
- Dòng 1:
x n. - Dòng 2:
nđộ dàid[i], tổng đúng bằng x.
Output
In chi phí nhỏ nhất.
Ràng buộc
1 <= x <= 10^91 <= n <= 2 * 10^5sum d[i] = x
Chấm điểm
| Subtask | Điểm | Điều kiện | Official tests |
|---|---|---|---|
| S1 | 20% | n ≤ 500 | 01–04 |
| S2 | 30% | n ≤ 5 * 10^4 | 05–10 |
| S3 | 50% | Không có ràng buộc bổ sung | 11–20 |
Ví dụ 1
Input
8 3
2 3 3
Output
13
Giải thích. Ghép 2+3=5 tốn5, rồi5+3=8 tốn8, tổng13.
Ví dụ 2
Input
10 1
10
Output
0
Giải thích. Đã có đúng một đoạn nên không cần thao tác.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M04-B13-HW03 |
| Buổi | B13 |
| Loại bài | HOMEWORK |
| Mức độ khó | Trung bình (Medium) |
| Thời gian làm bài khuyến nghị | 50 phút |
| Time limit | 2 giây |
| Memory limit | 256 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++11 trở lên |
Nguồn: Phỏng theo CSES Problem Set — Stick Divisions (Task 1161).
Tham khảo: https://cses.fi/problemset/task/1161
Comments