P1049裝箱問題

2022-03-10 18:41:19 字數 605 閱讀 7466

這是一道dp(揹包)水題。

題目問剩餘空間最小,那麼意思為裝得最多。拿到題後便習慣了用貪心去思考,發現區域性並不是全域性最優,所以考慮dp。但是發現01揹包的價值呢?(這個錯誤的想法就顯示了我對dp理解得不透徹)。而其實這些題的本源都在於寫轉移方程,於是便想了出來dp[j]=max(dp[j],dp[j-weight[i]]+weight[i]),用dp[j]來表示當揹包容量為j時最大可以裝多少。另外,要注意倒序,因為是類01。

1.不要光想套模板,要自己寫出狀態轉移方程

2.貪心是一種方法,並不是每乙個題都要用到

**

#include#include

#include

#include

#define n 100001

using

namespace

std;

intdp[n];

intweight[n];

intn;

intt;

int main()

for(int i=1;i<=n;i++)

}cout

return0;

}

P1049 裝箱問題

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

P1049 裝箱問題

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

P1049 裝箱問題

有乙個箱子的容量為v,有n個物品,每個物品都有乙個體積,要求在這n個物品中使箱子剩餘的體積最小。2468 31279 70o nm 連續寫了4題關於動態規劃的題目,但毫不例外的都是01揹包,能不能再簡單一點,我也是沒看出有多少改變。跟採藥相比也就少了個每個物品的價值,但物品的體積也可以看作是它的價值...