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#includeusing
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...