Hướng dẫn giải của HSG THPT Thanh Hóa 2021 - Lại Là Mua Quà
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nhận xét: Một nhóm các đơn hàng liên tiếp chỉ gồm tối đa từ ~1~ tới ~19~ đơn hàng, vì nếu nhóm gồm ít nhất ~20~ đơn hàng, thì việc tách nhóm thành ~2~ nhóm sẽ luôn tối ưu hơn.
Gọi ~dp[i]~ là tổng giá trị lớn nhất của các đơn hàng được miễn phí khi nhóm hết các đơn từ ~1~ tới ~i~. Ta có công thức QHĐ đơn giản sau:
~dp[i] = \max\bigl(dp[i], dp[i - 1] \bigr)~
~dp[i] = \max\bigl(dp[i], dp[i - j] + \min(a_{i - j + 1}, a_{i - j + 2}, \cdots, a_i) \bigr) [j=10 \rightarrow 19]~
Kết quả của bài toán là: ~\sum_{i=1}^{n} a_i - dp[n]~.
Độ phức tạp là ~\mathcal{O}(N)~.
Bình luận