完全揹包方案數DP

2021-08-21 12:40:22 字數 857 閱讀 7583

學習的**:

輸入的第一行包含乙個整數t,表示測試組數。

每個測試用例前面都有乙個空白行。

每個測試用例由包含整數n,m,k和素數p的單行組成。

對於每個測試用例輸出乙個整數:表示不同的購買奧利奧的方式的數量z mod p的值。

示例1複製

3

0 10 2 47

2 2 4 47

5 5 10 47

複製

10

146

在第乙個測試樣例中,我們必須購買一包2元的奧利奧,並且有10種型別。

在第二個測試樣例中,我們有以下選擇:

- 購買兩包2元的奧利奧:3種方式

- 購買一包2元的奧利奧和兩包1元的奧利奧: 2 × 3 = 6 種方式

- 購買四包1元的奧利奧:5種方法

因此答案是(3 + 6 + 5)mod 47 = 14 mod 47 = 14 。

t=100

3 ≤ p ≤ 1000000

0 ≤ n,m ≤ 1000和1 ≤ ķ ≤ 1000

題解:

完全揹包方案數。

#include using namespace std;

const int maxn = 1 << 10;

int main()

}for(int i = 1; i <= m; i ++)

}long long res = 0;

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

cout << res << '\n';

}return 0;

}

完全揹包dp

完全揹包類似題目 不過求最小值 杭電1114 揹包九講 基本形式 有 n 種物品和乙個容量為 v 的揹包,每種物品都有無限件可用。放入第 i 種 物品的費用是 c i 價值是 w i 求解 將哪些物品裝入揹包,可使這些物品的耗 費的費用總和不超過揹包容量,且價值總和最大。基本思路 這個問題非常類似於...

DP完全揹包

written with stackedit.每件物品不限數量 轉化為0 1揹包 每個物體盡可能多放 why?遞推式為 f i j max,kw i wf i,j max forall kw i f i,j max kw i w其他思路和01揹包相同.檢查每乙個k不會造成越界的k.0 1揹包就是完全...

dp 完全揹包)

有 n n n 種物品和乙個容量是 v v v 的揹包,每種物品都有無限件可用。第 i i i 種物品的體積是 v i vi vi,價值是 w i wi wi。求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。輸出最大價值。輸入格式 第一行兩個整數,n,v n,v n,v,用...