アットウィキロゴ
競技プログラミング用 知識集積所
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

競技プログラミング用 知識集積所

ABC441F - Must Buy

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識

B以下レベルの内容は省略

考え方

ベースは、基本的なナップサック問題。(DP-D参照)
ここに、「そのデータは最終的な答えに使われうるか?」の情報を追加するだけ。

つまり、DPテーブルを更新する際に、その商品を「使うか使わないか両方可か」を記録しておく。
全部埋め終わったら、バックトレースしながら、DPテーブル上のその情報を使う可能性があるかどうかをtrue/falseで記録していく。
その際についでに「使うか使わないか両方可か」にどんな情報が出てきたか見ながら、解答すべき文字を1つずつ決定すればよい。

あとは実装力勝負。

解答例


注意点

long long型を使う。

価値合計はint型範囲を超えることがあるので注意。

別解

最近更新されたスレッド
ウィキ募集バナー