Typical DP Contest:H - ナップザック
問題
https://atcoder.jp/contests/tdpc/tasks/tdpc_knapsack
よくあるナップザック問題の制約に色の数 がついた問題である。
考え方
愚直に色の数を集合として持つと となる。工夫が必要である。
色ごとに順番にナップザックしていくことを考える。DPとしては以下を定義する。
個以下の色を使って、重さが
以下の最大の価値
色
を使うことを含めて
個以下の色を使って、重さが
以下の最大の価値
とする。このとき 色の結果に色
を使ったDPの更新と、色
のみを使ったDPの更新がある。それぞれで
を更新した後、
の結果にマージしていくことを繰り返すと解くことができる。
Submission #3923412 - Typical DP Contest
どこに着目して考察するべきだったか
色ごとにナップザックをして、直前の結果とマージして更新していくDPを考える必要がある。このタイプのDPも経験が必要そう。
何がバグっていたか
得た知見
マージしながら更新する