題目描述
有乙個箱子容量為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...