/**
* 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的揹包可以...