B - 究極の団子職人 (Ultimate Dango Maker) 解説 by Mitsubachi


色の番号が小さい順に団子を確定させることを考えると,以下のような DP が定義できます.
$DP[i][j] :=$ 色 $i$ までは確定させ,色 $i$ で使われていない団子が $j$ 個ある場合の最大値

$j$ としての範囲は $0 \leq j \leq A_i$ です.ここで,考察により同じ色の団子が $3$ 個余っているならばそれらをマッチングさせて構いません.色 $i + 1$ と使うよりも色 $i$ 単独で使った方が損をしないためです.この考察により $0 \leq j \leq \min(A_i, 2)$ とできます.

したがって,DP の状態数は \(O(N)\) です.遷移数も \(O(N)\) であり,各遷移には \(O(1)\) かかるため,全体で \(O(N)\) となります.

投稿日時:
最終更新: