洛谷oj P1025 數的劃分 遞推 動態規劃

2021-08-20 19:52:53 字數 1049 閱讀 6581

將整數 n

n 分成 k

k 份,且每份不能為空,任意兩個方案不相同(不考慮順序)。

例如: n=7n=

7 , k=3k=

3 ,下面三種分法被認為是相同的。

1,1,51,

1,5 ;

1,5,11,

5,1 ;

5,1,15,

1,1 .

問有多少種不同的分法。

輸入格式:

n,kn,k

( 6620

0 , 2 \le k \le 62≤

k≤6 )

輸出格式:11

個整數,即不同的分法。

輸入樣例#1:

複製

7 3

輸出樣例#1:

複製

4

四種分法為:

1,1,51,

1,5;

1,2,41,

2,4;

1,3,31,

3,3;

2,2,32,

2,3 

題目分析:假定給的數字是7,3

.我們可以把7這個數字一步一步拆開,先拆分成1 6,然後我們在再6的基礎上在拆分出兩個數字。第乙個數字是1的情況分析完後,在分析第乙個數字不是1的情況,我們可以看成這樣1 6拆分為1 2 4.然後在把4拆分為3個數字一次加到其他三位上,這裡要注意一定要拆最小的那個數字,假如是1 1 5拆5的話會產生重複解,所以拆4會減少重複解。

綜上所述這道題的遞推式為:f[i][j]=f[i-1][j-1]+f[i-j][j];其中i表示拆分的數字,j表示拆分的位數,用陣列來記錄答案。

#includeusing namespace std;

int s[200][200];

int n,k;

int main()

for(int i=2;i<=k;i++)

for(int i=2;i<=n;i++)

}printf("%d\n",s[n][k]);

}return 0;

}

洛谷1025 數的劃分 搜尋

將整數n分成k份,且每份不能為空,任意兩份不能相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入格式 n,k 6輸出格式 乙個整數,即不同的分法。輸入樣例 1 7 3輸出樣例 1 4四種分法為 1,1,5 1,2,4 1...

洛谷 P1025 數的劃分

題目描述 將整數n分成k份,且每份不能為空,任意兩個方案不相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入輸出格式 輸入格式 n,k 6 n 200,2 k 6 輸出格式 乙個整數,即不同的分法。輸入輸出樣例 輸入樣例...

洛谷P1025 數的劃分

將整數n分成k份,且每份不能為空,任意兩個方案不相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入格式 n,k 6 輸出格式 乙個整數,即不同的分法。輸入樣例 1 7 3 輸出樣例 1 4 四種分法為 1,1,5 1,2...