01揹包 vijos1133 裝箱問題

2021-07-15 20:09:47 字數 733 閱讀 1074

p1133裝箱問題

accepted

標籤:noip普及組2001

[顯示標籤]

有乙個箱子容量為v(正整數,o≤v≤20000),同時有n個物品(o≤n≤30),每個物品有乙個體積 (正整數)。要求從 n 個物品中,任取若千個裝入箱內,使箱子的剩餘空間為最小。

第一行,乙個整數,表示箱子容量;

第二行,乙個整數,表示有n個物品;

接下來n行,分別表示這n個物品的各自體積。

乙個整數,表示箱子剩餘空間。

2468

31279

7

0

每個測試點1s

思路:

裸的01揹包,唯一的變化就是此題的花費和價值都是指的體積v[i]

狀態轉移方程:f[j] = max;

**:

#include#include#includeusing namespace std;

using namespace std;

//f[j] = max

const int n = 40;

const int t = 20000+10;

int f[t];//f[j] j容量時最大體積

int v[n];

int main()

Vijos P1133 裝箱問題 01揹包

有乙個箱子容量為v 正整數,o v 20000 同時有n個物品 o n 30 每個物品有乙個體積 正整數 要求從 n 個物品中,任取若千個裝入箱內,使箱子的剩餘空間為最小。第一行,乙個整數,表示箱子容量 第二行,乙個整數,表示有n個物品 接下來n行,分別表示這n個物品的各自體積。乙個整數,表示箱子剩...

裝箱問題 01揹包

有乙個箱子容量為v 正整數,0 v 20000 同時有n個物品 0 n 30 每個物品有乙個體積 正整數 要求n個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。輸入 第一行是乙個整數v,表示箱子容量 第二行是乙個整數n,表示有n個物品 接下來n行,分別表示這n 個物品的各自體積 乙個整數,表示...

裝箱問題(01揹包問題)

有乙個箱子容量為 v,同時有 n 個物品,每個物品有乙個體積 正整數 要求 n 個物品中,任取若干個裝入箱內,使箱子的剩餘空間為最小。輸入格式 第一行是乙個整數 v,表示箱子容量。第二行是乙個整數 n,表示物品數。接下來 n 行,每行乙個正整數 不超過10000 分別表示這 n 個物品的各自體積。輸...