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 #include7view code8using
namespace
std;910
int n,m,dp[210][7
];11
intmain()
1221
}22 printf("%d"
,dp[n][m]);
23 system("
pause");
24return0;
25 }
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...