題目:
**:
#includeint dp[35000];
int main()
return 0;
}
分析:把問題抽象成多重揹包的問題,即
有三種商品,
第一種價值1,體積為1
第二種價值2,體積為2
第三種價值3,體積為3
揹包容量為n
求揹包恰好裝滿的方案數(因為所有物品的價值/體積都是1,所以肯定是裝滿,所以轉化成普通多重揹包最優方案數)
狀態轉移方程為
dp[i]=max(dp[i],dp[i-weight]+value);
number[i]=number[i-1]+number[i-2]+number[i-3];
**:
#include#include#define max(a,b) (a>b?a:b)
__int64 number[32770];
int dp[32770];
int n;
void multiply_pack(int value,int weight) }
int main()
return 0;
}
hdu 1284 錢幣兌換
主題思想 這題有兩種主流思路 母函式方法,和動態規劃方法。先說母函式方法,母函式方法,模擬多項式乘法,這裡,有個技巧就是,利用陣列下標表示多項式指數。模擬 1 x x 2 x 3 x 4 1 x 2 x 4 x 6 1 x 3 x 6 x 9 由於是n是有限制的,所以開闢n 1大小的陣列,模擬乘法。...
HDU 1284錢幣兌換
這個是完全揹包的基礎題,模擬換錢,剛開始狀態方程寫錯了,我直接寫dp i dp i 1 dp i 2 dp i 3 然後想了想感覺太大了,不太對,後來看網上的 看著兩層for迴圈,基本是一樣的,為什麼我的不對啊,然後手工模擬了乙個小例子,發現,這種狀態轉移方程算重了,多加了好多重複的,因為完全揹包和...
hdu 1284 錢幣兌換問題
problem description 在乙個國家僅有1分,2分,3分硬幣,將錢n兌換成硬幣有很多種兌法。請你程式設計序計算出共有多少種兌法。input 每行只有乙個正整數n,n小於32768。output 對應每個輸入,輸出兌換方法數。sample input 2934 12553 sample ...