Codevs 1014 裝箱問題

2021-09-01 15:55:10 字數 679 閱讀 7380

題目描述 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個物品 ...