計蒜課 和為M的組合個數

2021-07-08 15:03:28 字數 648 閱讀 9973

華電北風吹

日期:2015/12/4

題目型別:

0-1揹包問題,動態規劃

題目描述:

在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

解題思路:

利用揹包問題的解題思路,狀態是0,1,2,…,m,每新增加乙個數字,就更新每個狀態的可達數目。

#include 

using namespace std;

int func(int* p, int m, int n)}}

result = state[m];

delete state;

return result;

}int main()

計蒜客 難題題庫 200 判斷m是否為質數

給定乙個長度為n 0 n 10000 的序列,保證每乙個序列中的數字a i 是小於maxlongint的非負整數 程式設計要求求出整個序列中第k大的數字減去第k小的數字的值m,並判斷m是否為質數。0 k n 輸入格式 第一行為2個數n,k 含義如上題 第二行為n個數,表示這個序列 輸出格式 如果m為...

和為指定數的組合個數

輸入兩個整數 n 和 m,從數列1,2,3 n 中 隨意取幾個數,使其和等於 m 要求將其中所有的可能組合列出來 排序 0 1揹包 若第i個數放入,剩下0 i 1個數取出sum ai 否則0 i 1取出sum 從i個數里取出和為sum的組合個數 不去重 param i param sum priva...

計蒜客題目 合法分數的組合

輸入乙個自然數n,我們總可以得到一些滿足 1 b n,0 a b 1 條件的最簡分數a b 分子和分母互質的分數 請找出所有滿足條件的分數。比方說,當n 5時,所有解為 0 1 1 5 1 4 1 3 2 5 1 2 3 5 2 3 3 4 4 5 1 1 現在,你需要對於乙個給定的自然數n,1 n...