再學01揹包(二)

2021-07-26 20:49:29 字數 697 閱讀 7067

我認為01揹包就是——對n個物品進行取捨,在一定的限制條件下如何取得最優解的一類問題。

此題和再學01揹包(一) 中的標準01揹包的比較。

標準01揹包和本題的比較

標準01揹包

本題花費(或者代價)

cost[i]

cost[i]

價值(或者貢獻)

val[i]

-cost[i]

限制條件

if(cost[i]<=v) 可放

if( v>=5) 可買

最優解貢獻最大

貢獻最小(即絕對值最大)

錯誤寫法:

#include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define for(i,k,n) for(int i=k;i>n)

}cout<

正確**:

#include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define for(i,k,n) for(int i=k;i>n)

}cout<

再學動態規劃之 01揹包

寫了之後,發現這題跟01揹包還有點區別。但是寫看這個吧。暴力搜尋的方法。就是每個取或者不去。class solution object defgets self,arr,index,target if target 0 return true elif target 0 return false e...

揹包問題之0 1揹包 二

問題描述 有n個物品,第i個物品的重量為w i 價值為v i 選一些物品放入揹包中,使揹包內物品總重量恰好為w的前提下,總價值盡量大。輸入 有多組測試資料,每組資料第一行為2個正整數,分別代表物品的個數n和揹包的容量w,接下來的n行,每行2個正整數,用空格隔開,分別代表物品的重量w和價值v,當n w...

揹包再學習筆記

之前學習的幾個揹包都是背幾個一維陣列的板子,沒有深入的理解其中的含義,當碰到乙個相似的揹包的問題時,板子出現了短板,這時就難於寫出題目 先說 01 揹包 dp i j max dp i 1 j dp i 1 j v i w i 這裡的 i 表示第幾個物品,j表示目前用的揹包體積 還有乙個要注意的是揹...