小明手裡有n元錢全部用來買書,書的**為10元,20元,50元,100元。
問小明有多少種買書方案?(每種書可購買多本)
輸入格式
乙個整數 n,代表總共錢數。
輸出格式
乙個整數,代表選擇方案種數。
資料範圍
0≤n≤10000≤n≤1000
輸入樣例1:
20
輸出樣例1:
2
輸入樣例2:
15
輸出樣例2:
0
輸入樣例3:
0
輸出樣例3:
1
演算法分析:
多重揹包問題:每個物品可以選多個,分類的時候,就要考慮每個物品選幾個了,從0個開始,一直到滿足這個條件:j-s*v[i]>0
的s取到最大為止。推出f[i][j]=f[i-1][j] + f[i][j-v[i]]。
#include #include using namespace std;
const int n=1010;
int f[n];
int w[4]=;
int v;
int main()
cout<
return 0;
}
模板 多重揹包問題
有 n 種物品和乙個容量是 v 的揹包。第 i 種物品最多有 si 件,每件體積是 vi,價值是 wi。求解將哪些物品裝入揹包,可使物品體積總和不超過揹包容量,且價值總和最大。輸出最大價值。輸入格式 第一行兩個整數,n,v,用空格隔開,分別表示物品種數和揹包容積。接下來有 n 行,每行三個整數 vi...
dp 多重揹包
推薦 學會了前兩個揹包 學這個揹包還是很輕鬆的 多重揹包 顧名思義 就是前兩種揹包結合到一起 首先還是用乙個例子說明 1 問題描述 已知 有乙個容量為v的揹包和n件物品,第i件物品最多有num i 件,每件物品的重量是weight i 收益是cost i 問題 在不超過揹包容量的情況下,最多能獲得多...
多重揹包模板
有n種物品和乙個容量為v的揹包。第i種物品最多有num i 件可用,每件費用是c i 價值是w i 求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。多重揹包問題的思路跟完全揹包的思路非常類似,只是k的取值是有限制的,因為每件物品的數量是有限制的,狀態轉移方程為 dp i ...