noi openjudge 數字組合

2021-07-24 12:35:26 字數 967 閱讀 5567

有n個正整數,找出其中和為t(t也是正整數)的可能的組合方式。如:

n=5,5個數分別為1,2,3,4,5,t=5;

那麼可能的組合有5=1+4和5=2+3和5=5三種組合方式。

輸入的第一行是兩個正整數n和t,用空格隔開,其中1<=n<=20,表示正整數的個數,t為要求的和(1<=t<=1000)

接下來的一行是n個正整數,用空格隔開。

和為t的不同的組合方式的數目。

5 5

1 2 3 4 5

3
n <= 20 , 可以爆搜,也可以dp。

子集列舉,用二進位制位表示狀態,第 i 位為1表示選,否則不選。

**如下

#include

#include

#include

#include

using

namespace

std;

int n,t;

int num[450];

int ans;

int main()

if(now == t)

ans ++;

}printf("%d\n",ans);

return

0;}

dp可以設f[ i ] 為和為 i 的方案數 , f[ j ] = σf[ j - num[ i ] ].

**如下

#include

#include

#include

#include

using

namespace

std;

int f[1210];

int num[1210];

int main()

/*5 5

1 2 3 4 5

*/

數字組合問題

題目 有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 ...