P1049 裝箱問題(01揹包)

2021-09-20 12:48:40 字數 857 閱讀 8802

題目描述

有乙個箱子容量為vv(正整數,0 \le v \le 200000≤v≤20000),同時有nn個物品(0要求nn個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。

輸入輸出格式

輸入格式:

11個整數,表示箱子容量

11個整數,表示有nn個物品

接下來nn行,分別表示這nn個物品的各自體積

輸出格式:

11個整數,表示箱子剩餘空間。

輸入輸出樣例

輸入樣例#1:246

83127

97輸出樣例#1:

0轉換成能最多能裝下多少

然後用輸入的n減最多,就是剩下的最小空間

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define dd double

using namespace std;

ll dp[

20005];

intmain()

;for

(ll i =

1; i <= m; i++

)for

(ll i =

1; i <= m; i++)}

cout << n - dp[n]

<< endl;

}

P1049 裝箱問題(01揹包)

題意 給你乙個揹包和一些物品,求把一些物品放進揹包中,揹包最少會空餘多少空間。思路 我們回想01揹包,就是在揹包容量內獲得最大價值,我們把每個物品的體積看做價值,也就轉化成了求揹包容量內的最大裝包量,然後進行01揹包,看最後f m 和m的差值即可。include define endl n defi...

揹包問題 01揹包 P1049 裝箱問題

p1049 裝箱問題 f i j 把前面 i 件物品放進容量為 j 的揹包當中所獲得的最大價值 現在有 n 件物品,揹包容積為 v 那麼列出狀態轉移方程 f i j max f i 1 j f i 1 j v i w i j v i f i 1 j j v i 0 i 0 or j 0 全域性陣列建...

P1049 裝箱問題(揹包)

有乙個箱子容量為vv 正整數,0 le v le 200000 v 20000 同時有nn個物品 00要求nn個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。11個整數,表示箱子容量 11個整數,表示有nn個物品 接下來nn行,分別表示這nn個物品的各自體積 11個整數,表示箱子剩餘空間。in...