応用情報技術者アルゴリズムとデータ構造オリジナル・公式資料照合難易度★★★★☆

容量6のかばんに、品物(重さ,価値)=(2,3),(3,4),(4,5)を各1個まで入れる。次の0-1ナップサック法で得るdp[6]はどれか。dp[0..6]はすべて0で開始し、内側は大きい添字から小さい添字へ更新する。 for 各品物の(w,v)を上記の順に選ぶ for c を 6 から w まで1ずつ減らす dp[c] ← max(dp[c], dp[c-w]+v) endfor endfor

A
7

重さ2と3の組なら価値7ですが、重さ2と4の組で容量6以内の価値8を得られます。

B
8★ 正解

重さ2・価値3と重さ4・価値5を選ぶと重さ6、価値8で最大です。

C
9

価値9は重さ2の品物を3個選ぶ場合ですが、各品物は1個までという条件に反します。

D
12

すべての価値の合計は12ですが、重さも2+3+4=9となり容量6を超えます。

解説

内側を降順に更新すると、同じ品物を同じ回で複数回使うことを防ぎます。可能な組合せの最大は重さ2と4の価値8です。

根拠資料・確認情報

対応範囲:2026年度 応用情報技術者試験

資料確認日:2026-10-28

同じレッスンの問題

アプリで毎日学習しよう

ゲーミフィケーションで 応用情報技術者 合格を目指す。無料・課金なし。

更新: 2026/10/28