題目描述 description
有乙個箱子容量為v(正整數,0<=v<=20000),同時有n個物品(0<n<=30),每個物品有乙個體積(正整數)。
要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。
輸入描述 input description
乙個整數v,表示箱子容量
乙個整數n,表示有n個物品
接下來n個整數,分別表示這n 個物品的各自體積
輸出描述 output description
乙個整數,表示箱子剩餘空間。
樣例輸入 sample input246
83127
97樣例輸出 sample output0思路
dp問題,用容量作為狀態,然後逐個物品決策,最外層迴圈表示當前決策到第i件物品,f[j]為總容量為j時前i件物品裡可以放入的最大總體積,那麼當前決策的第i件物品就有放和不放兩種情況,則f[j]=max(f[j],f[j-a[i]]+a[i]),最後輸出v-f[v]即可。
**如下
#include#includeusing namespace std;
int v,n,a[31],f[21000];
int main()
}} printf("%d",v-f[v]);
return 0;
}
Codevs 1014 裝箱問題
有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0 n 30 每個物品有乙個體積 正整數 要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。輸入描述 input description 乙個整數v,表示箱子容量 乙個整數n,表示有 n個物品 接下來n個整數,分別表示這 n ...
codevs 1014 裝箱問題
1014 裝箱問題 2001年noip全國聯賽普及組 時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解 題目描述 description 有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0 n 30 每個物品有乙個體積 正整數 要求n個物品中,任取若干個裝入箱...
Codevs 1014 裝箱問題
題目描述 description 有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0 n 30 每個物品有乙個體積 正整數 要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。輸入描述 input description 乙個整數v,表示箱子容量 乙個整數n,表示有n個物品 ...