動態規劃之揹包問題

2021-09-24 09:35:35 字數 1177 閱讀 8901

/**

* vivo2019提前批筆試第三題:

* 小v負責一次活動禮品採購,每一款禮品的受歡迎程度(熱度值)各不相同,現給出總金額以及各個禮品的單價

* 和熱度值,且每個禮品只購買乙個,如何購買可以使得所有禮品的總熱度值最高。

* 輸入:

* 第一行是乙個正整數,表示總金額(不大於1000)

* 第二行是乙個長度為n的正整數陣列,表示禮品單價(n不大於100)

* 第三行是乙個長度為n的正整數陣列,表示對應禮品的熱度值

* 輸出:

* 乙個正整數,表示可以獲得的最高總熱度值

* * 樣例輸入:1000

* 200 600 100 180 300 450

* 6 10 3 4 5 8

* 樣例輸出:21

*/

解析:0-1揹包問題(0-1表示只能進行單次放入與否,不能進行重複放入)

#include #include #include using namespace std;

int backpack_01(int money, vector& value, vector& hot)

}return dp[count][money];

}int main() ;

int hot[6] = ;

vectorvalue_(value, value+6);

vectorhot_(hot, hot+6);

return backpack_01(money, value_, hot_);

return 0;

}

參考:

#include using namespace std;

int min_coin(int num);

int res[num + 1] = ;

for(int i=0;ires[i] = i;

for(int j=0;j<3;j++)

for(int i=1;iif(coin[j] <= i && res[i-coin[j]]+1 < res[i])

res[i] = res[i-coin[j]]+1;

return res[num];

}int main()

動態規劃之揹包問題

最近刷題遇到好幾道揹包問題,揹包問題是動態規則中的一類體型,在考察演算法的筆試中經常遇到。關於揹包問題,文章 揹包問題九講 中已經做了很多分析,這裡就不再細述,建議好好看看這篇文章。然而文章給了許多案例分析,卻沒有很好的練習。說明 1 本文目的不在於講解揹包問題的分析與講解,而是收集了一些揹包問題。...

動態規劃之揹包問題

一 問題描述 有n 個物品,它們有各自的重量和價值,現有給定容量的揹包,如何讓揹包裡裝入的物品具有最大的價值總和?二 總體思路 根據動態規劃解題步驟 問題抽象化 建立模型 尋找約束條件 判斷是否滿足最優性原理 找大問題與小問題的遞推關係式 填表 尋找解組成 找出01揹包問題的最優解以及解組成,然後編...

動態規劃之 揹包問題

前些天在做動態規劃的題,感覺動態規劃博大精深,沒有一種特定的模式,學起來很費勁。在這裡就動態規劃中的揹包問題談談。三種揹包問題 0 1揹包,完全揹包,多重揹包。0 1揹包 有n件物品和容量為v的揹包,求解將哪些物品放入揹包中可以使獲得的價值最大。f i v 表示將前i件物品恰好放入容量為v的揹包可以...