數字組合(揹包計數)

2021-08-07 08:58:53 字數 585 閱讀 8648

時間限制: 0 sec  

記憶體限制: 128 mb

提交: 2  

解決: 1 [

提交][

狀態][

討論版][

edit] [

testdata]

在n個數中找出其和為m的若干個數。先讀入正整數n(1< n< 100)和m(1< m< 10000),  再讀入n個正數(可以有相同的數字,每個數字均在1000以內),  在這n個數中找出若干個數,  使它們的和是m,  把滿足條件的數字組合都找出來以統計組合的個數,輸出組合的個數(不考慮組合是否相同)。要求你的程式執行時間不超過1秒。

第一行是兩個數字,表示n和m。 第二行起是n個數。

就乙個數字,表示和為m的組合的個數。

4 4
1 1 2 2

3

#include#includeusing namespace std;

int dp[100005];

int main()

/*10 9

1 2 3 4 5 6 7 8 9 10

*/

數字組合(01揹包)

小蒜有n 1 n 20 個正整數,找出其中和為t t 也是正整數 的可能的組合方式。如 n 5,5 個數分別為 1,2,3,4,5 t 5 那麼可能的組合有 5 1 4 5 1 4 和 5 2 3 和 5 5三種組合方式。輸入格式 輸入的第一行是兩個正整數 n 和 t,用空格隔開,其中1 n 20,...

數字組合(01揹包)

就是01揹包小小變形一下就不太會做了。思路 當前和的方案數等於當前和減當前和當去當前正數的方案數,如 當前正數為2,和為5的方案數就等於3 5 2 的方案數,和為3的方案數又等於1 3 2 的方案數。又因為在每一種方案中每個數字只能使用一次,所以採用01揹包。狀態轉移方程式 dp j dp j w ...

數字組合(01揹包問題)

給定n個正整數a1,a2,an,從中選出若干個數,使它們的和為m,求有多少種選擇方案。輸入格式 第一行包含兩個整數n和m。第二行包含n個整數,表示a1,a2,an。輸出格式 包含乙個整數,表示可選方案數。資料範圍 1 n 100 1 m 10000 1 ai 1000 輸入樣例 44 1122 輸出...