動態規劃入門 完全揹包(硬幣兌換問題)

2021-08-18 01:12:16 字數 805 閱讀 3964

在乙個國家僅有1分,2分,3分硬幣,將錢n兌換成硬幣有很多種兌法。請你程式設計序計算出共有多少種兌法。

input每行只有乙個正整數n,n小於32768。

output對應每個輸入,輸出兌換方法數。

sample input

2934

12553

sample output
718831

13137761

time limit1000 msmemory limit32768 kboswindows

思路:動態規劃、遞迴

**如下:

#include#include#include#includeusing namespace std;

/*初始思路定義乙個二維陣列num[i][j]。

其中i代表可以兌換成硬幣的種類,

j代表所兌換成的金額,陣列值表示該兌換金額下有多少種兌換方法。

然後利用遞迴將不同兌換金額的兌換方式表達出來。

*/long long num[40000];//因為已知3種硬幣,所以陣列由二維轉變成一維。

int main()

while(~scanf("%d",&n))

return 0;

}

動態規劃入門 揹包問題(01 完全 多重)

一 揹包問題 1 01 揹包 給定 n 種物品和乙個容量為 c 的揹包,物品 i 的重量是 wi,其價值為 vi 問 應該如何選擇裝入揹包的物品,使得裝入揹包中的物品的總價值最大?分析 對於每個物品,我們都有兩種選擇,取和不取。我們可以定義乙個二維陣列dp i j 表示有i件物品,揹包容量為j時獲得...

動態規劃入門 揹包問題

有n個重量和價值分別為wi,vi的物品。從這些物品中選出總重量不超過w的物品,求所有挑選方案中價值總和的最大值。在這裡,每個物品只能選一件。1 n 100 1 wi,vi 100 1 w 10000 n 4 w,v w 5 7 選擇0 1 3號物品 暴力法 複雜度o 2n include inclu...

動態規劃入門之揹包問題

int value maxlen 前i種物品中取若干種,在總體積不超過j的條件下取得的最大值 int weight 3500 int dvalue 3500 int main i 1時 for int j 1 j m j for int i 2 i n i for int j m j 0 j cou...