Chia Mảng Knuth
Đề bài
Mô tả
Cho mảng số nguyên. Ban đầu cả mảng là một đoạn duy nhất. Mỗi bước, bạn chọn một đoạn và chia nó thành hai đoạn liên tiếp. Chi phí của một lần chia đoạn bằng tổng tất cả các phần tử trong đoạn đó. Mục tiêu là chia mảng thành đoạn đơn (mỗi đoạn gồm một phần tử) với tổng chi phí nhỏ nhất.
Dữ liệu vào
- Dòng 1: số nguyên .
- Dòng 2: số nguyên .
Dữ liệu ra
- Một số nguyên: tổng chi phí nhỏ nhất.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 2 7 3 2 5 |
43 | Chia [2,7,3,2,5] (tổng 19) sau phần tử thứ 2, được [2,7] và [3,2,5]: chi phí 19. Chia [2,7] (tổng 9): chi phí 9. Chia [3,2,5] (tổng 10) sau phần tử thứ 2, được [3,2] và [5]: chi phí 10. Chia [3,2] (tổng 5): chi phí 5. Tổng = 19+9+10+5 = 43, và đây là cách rẻ nhất. |
| 4 3 1 2 4 |
19 | Chia [3,1,2,4] (tổng 10) sau phần tử thứ 3, được [3,1,2] và [4]: chi phí 10. Chia [3,1,2] (tổng 6) sau phần tử thứ 1, được [3] và [1,2]: chi phí 6. Chia [1,2] (tổng 3): chi phí 3. Tổng = 10+6+3 = 19. Chia đôi ở giữa cho kết quả 10+4+6 = 20, tức là tệ hơn. |
| 1 5 |
0 | Chỉ một phần tử, không cần chia. |
Bình luận