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