華電北風吹
日期: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...