洛谷P1049裝箱問題題解 zhengjun

2021-10-23 02:39:06 字數 1138 閱讀 6251

題目描述

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