HDU1284錢幣兌換(完全揹包)

2022-06-15 22:57:29 字數 744 閱讀 1409

problem description

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

input

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

output

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

sample input

2934 12553

sample output

718831 13137761

這是完全揹包的計數問題

狀態轉移方程 dp[j]=dp[j]+dp[j-w[i]]

#include#include

using

namespace

std;

intmain()

; memset(dp,

0,sizeof

(dp));

//當取的錢幣都為0時,也算一種方案

dp[0]=1

; cin>>n;

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

for(int j=w[i];j<=n;j++)

//每次加上j-w[i]的取法

dp[j]=dp[j]+dp[j-w[i]];

cout

}

HDU 1284 錢幣兌換問題 (完全揹包)

題目 includeint dp 35000 int main return 0 分析 把問題抽象成多重揹包的問題,即 有三種商品,第一種價值1,體積為1 第二種價值2,體積為2 第三種價值3,體積為3 揹包容量為n 求揹包恰好裝滿的方案數 因為所有物品的價值 體積都是1,所以肯定是裝滿,所以轉化成...

hdu 1284 錢幣兌換問題(完全揹包)

problem description 在乙個國家僅有1分,2分,3分硬幣,將錢n兌換成硬幣有很多種兌法。請你程式設計序計算出共有多少種兌法。input 每行只有乙個正整數n,n小於32768。output 對應每個輸入,輸出兌換方法數。sample input 2934 12553 sample ...

HDU 1284 錢幣兌換問題(完全揹包)

link 題意 給定1 2 3 與 n,問有多少種組成n的方法。用dp i j 表示前i種前兌換成j的方案數 則d p i j sum dp i 1 j sum dp i j a i 即i乙個都不選和i至少選乙個 用滾動陣列進行優化dp j dp j su m dp j i include incl...