數字組合(dp 深搜

2022-07-29 08:12:15 字數 676 閱讀 9937

給定n個正整數a1,a2,…,an,從中選出若干個數,使它們的和為m,求有多少種選擇方案。

輸入格式

第一行包含兩個整數n和m。

第二行包含n個整數,表示a1,a2,…,an。

輸出格式

包含乙個整數,表示可選方案數。

資料範圍

1≤n≤100,

1≤m≤10000,

1≤ai≤1000

輸入樣例:

4 41 1 2 2

輸出樣例:

3思路:就是01揹包的變形 這裡求的是 放入的物品恰好值等於m , 但是每乙個物品只能取一次 ; 直接可以轉化成為 把乙個揹包容量為n的揹包裝滿 需要那些物品 相比普通 0 1 揹包這裡邊就沒有價值

這裡不同於其它dp 這裡只需要關注這個物品選或者不選就行了

#include #include #include using namespace std;

const int n = 110;

int n , m ;

int q[n];

int dp[n];//表示的是 選著物品體積 和 不選物品體積 加起來恰好等於揹包容量的 有幾種

int main()

}cout << dp[m] << endl;

return 0;

}

數字組合問題

題目 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去 掉不滿足條件的排列。方法一 列出取值範圍內所有資料,分別檢查是否符合條件 public static void calculatenum1...

數字組合問題

設有n個正整數,現在需要你設計乙個程式,使他們連線在一起成為最大的數字,例3個整數 12,456,342 很明顯是45634212為最大,4個整數 342,45,7,98顯然為98745342最大 程式要求 輸入整數n 接下來一行輸入n個數字,最後一行輸出最大的那個數字!題目解析 拿到這題目,看起要...

LintCode 數字組合

給出一組候選數字 c 和目標數字 t 找到c中所有的組合,使找出的數字和為t。c中的數字可以無限制重複被選取。例如,給出候選陣列 2,3,6,7 和目標數字7,所求的解為 7 2,2,3 您在真實的面試中是否遇到過這個題?yes 樣例給出候選陣列 2,3,6,7 和目標數字7 返回 7 2,2,3 ...