11 數字組合

2021-09-10 14:03:19 字數 884 閱讀 6610

題目鏈結

題目:

有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 值範圍比較小,可以進行搜尋列舉

**:

#include#include#includeusing namespace std;

const int maxn=500005;

int data[maxn];

int total=0,sum=0,n,t;

void dfs(int x)

if(x還可以用dp優化,類似於01揹包問題,dp[i][j]表示前i個數之和為j的個數

#includeusing namespace std;

int n,t,data[30];

int dp[30][1100];

int main()

if(j>=data[i])

else}}

cout<}

數字組合問題

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