Tối ưu hóa quy hoạch động Chia để trị (Divide and Conquer DP)
Cho một dãy gồm N số nguyên dương A1, A2, …, AN. Bạn cần phân chia dãy này thành đúng K đoạn con liên tiếp không rỗng. Chi phí của một đoạn từ chỉ số l đến r (1-indexed) là…
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: dynamic programming, divide and conquer.
Nội dung đề bài
Mục tiêu kiến thức
- Nhận diện tính chất bất đẳng thức tứ giác (Quadrangle Inequality) C(a, c) + C(b, d) ≤ C(a, d) + C(b, c) với a ≤ b ≤ c ≤ d.
- Chứng minh tính đơn điệu của điểm chuyển trạng thái tối ưu: opt(i, j) ≤ opt(i, j + 1).
- Tối ưu hóa độ phức tạp quy hoạch động phân hoạch K đoạn từ O(K · N2) xuống O(K · N log N).
Mô tả bài toán
Cho một dãy gồm N số nguyên dương A1, A2, …, AN. Bạn cần phân chia dãy này thành đúng K đoạn con liên tiếp không rỗng. Chi phí của một đoạn từ chỉ số l đến r (1-indexed) là bình phương tổng các phần tử trong đoạn: C(l, r) = ( ∑i=lr Ai )2 Hãy tìm tổng chi phí nhỏ nhất để phân chia toàn bộ dãy thành K đoạn con.
Quy ước nộp bài
- Chỉ cần viết một chương trình đọc
stdinvà in rastdout. Bài này không yêu cầu viết hàm. - Không dùng
coutđể in lời nhắc trước khi đọc dữ liệu. Lời nhắc sẽ lọt vàostdoutvà làm bài sai. - Chỉ in đúng nội dung ở mục Output. Không in thêm nhãn, dòng trống hay ký tự thừa.
- Output được so khớp từng ký tự, phân biệt chữ hoa/thường và dấu câu.
Input
- Dòng 1: Gồm 2 số nguyên N, K (1 ≤ K ≤ N ≤ 3000).
- Dòng 2: N số nguyên A1, A2, …, AN (1 ≤ Ai ≤ 104).
Output
- In ra một số nguyên duy nhất là tổng chi phí nhỏ nhất.
Ràng buộc
- 1 ≤ K ≤ N ≤ 3000.
- Thời gian: 1000ms. Bộ nhớ: 256MB.
Ví dụ 1
Input
4 2
1 2 3 4Output
52
*Giải thích: Chia thành 2 đoạn [1, 2, 3] (tổng 6, chi phí 36) và [4] (tổng 4, chi phí 16) $\implies 36 + 16 = 52$. Hoặc [1] và [2, 3, 4] chi phí 1 + 81 = 82; [1, 2] và [3, 4] chi phí 9 + 49 = 58.*Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
