題目描述
有乙個箱子容量為v
vv(正整數,0≤v
≤20000
0 \le v \le 20000
0≤v≤20
000),同時有n
nn個物品(0
300 030),每個物品有乙個體積(正整數)。 要求n nn個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。 輸入格式 1 11個整數,表示箱子容量 1 11個整數,表示有n nn個物品 接下來n nn行,分別表示這n nn個物品的各自體積 輸出格式 1 11個整數,表示箱子剩餘空間。 輸入輸出樣例 輸入 #1 複製2468
31279
7輸出 #1 複製
0
說明/提示
n oi
p2001
noip2001
noip20
01普及組 第444題
想當年普及第四題竟然是這個難度,哎哎哎哎哎……沒辦法
好吧進入正題。
這個一看就是揹包問題,那麼為了讓剩餘的體積最小,那麼就要讓裝的最多,那麼,一般的揹包是價值最大,我們不妨讓乙個物品的價值就等於體積,這樣就可以使價值最大也就是體積最大了。
如果還沒有會滾動陣列的話。
參見洛谷p1048採藥題解–zhengjun
#include
#define max(x,y) ((x)>(y)?(x):(y))
#define maxn 31
using
namespace std;
int n,m;
int f[
20001
],v[maxn]
;//採用滾動
intmain()
}printf
("%d"
,m-f[m]);
//求剩餘體積
return0;
}
洛谷 P1049 裝箱問題
題目描述 有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0 n 30,每個物品有乙個體積 正整數 要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。輸入輸出格式 輸入格式 乙個整數,表示箱子容量 乙個整數,表示有n個物品 接下來n行,分別表示這n 個物品的各自體積 輸出格...
洛谷P1049 裝箱問題
有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。輸入格式 1個整數,表示箱子容量 1個整數,表示有n個物品 接下來n行,分別表示這n個物品的各自體積 輸出格式 1個整數,表示箱子剩餘空間。輸入樣例 1 複製 2468 31...
洛谷P1049 裝箱問題
p1049 裝箱問題 題目描述 有乙個箱子容量為vv 正整數,0 le v le 200000 v 20000 同時有nn個物品 0要求nn個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。輸入輸出格式 輸入格式 11個整數,表示箱子容量 11個整數,表示有nn個物品 接下來nn行,分別表示這n...