codevs 1039 數的劃分

2022-08-22 12:51:14 字數 1018 閱讀 9632

codevs 1039 數的劃分

題目描述   description

將整數n分成k份,且每份不能為空,任意兩種劃分方案不能相同(不考慮順序)。問有多少種不同的分法。

例如:n=7,k=3,下面三種劃分方案被認為是相同的。

1 1 5

1 5 1

5 1 1

輸入描述   input description

輸入:n,k (6輸出描述  output description

輸出:乙個整數,即不同的分法。

樣例輸入  sample input

7 3樣例輸出  sample output

f[i][j]是指將i劃分成j部分的方案數

初始化f[0][0]=1

f[i][j]有意義(i>=j)的情況下滿足公式 f[i][j]=f[i-1][j-1]+f[i-j][j]

解釋:分為兩種情況 一種情況分出來的數中含1 另一種情況分出來的數中不含1

以下均以i分為j組舉例

情況1

:分離出乙個1,那麼剩餘的i-1就只能劃分成j-1個部分

情況2:不包含1    為了不包含1把最終所劃分的j組每組都放上乙個1,由於不能劃分出0,因此不論剩下的數怎麼劃分,j組中都不可能有1.即將剩下的i-j分為j組

1 #include2 #include3 #include4 #include5 #include6 #include7

8using

namespace

std;910

int n,m,dp[210][7

];11

intmain()

1221

}22 printf("%d"

,dp[n][m]);

23 system("

pause");

24return0;

25 }

view code

CodeVS 1039 數的劃分

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

codevs 1039 數的劃分

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

codevs1039 數的劃分 黃金 dp

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