數字組合 動態規劃

2021-10-25 12:11:41 字數 750 閱讀 8039

小蒜有 n(1≤n≤20) 個正整數,找出其中和為 (t 也是正整數)的可能的組合方式。如:n=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 個正整數,用空格隔開。

輸出格式

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

輸出時每行末尾的多餘空格,不影響答案正確性

樣例輸入

5 51 2 3 4 5

樣例輸出

3

dp[i][j]表示前i個數等於j的個數

#include

using

namespace std;

const

int maxn=30;

const

int inf=

1001

;int

main()

for(

int i=

1;i<=n;i++

)for

(int j=num[i]+1

;j<=t;j++)}

printf

("%d"

,dp[n]

[t])

;}

數字組合 動態規劃 01揹包 openjudge

總時間限制 1000ms 記憶體限制 65536kb 描述 有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...

數字組合問題

題目 有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個數字,最後一行輸出最大的那個數字!題目解析 拿到這題目,看起要...