時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:5描述
整數劃分是乙個經典的問題。請寫乙個程式,完成以下要求。輸入
多組輸入資料。
每組輸入是兩個整數n和k。(1 <= n <= 50, 1 <= k <= n)
輸出對於輸入的 n,k;
第一行: 將n劃分成若干正整數之和的劃分數。
第二行: 將n劃分成k個正整數之和的劃分數。
第三行: 將n劃分成最大數不超過k的劃分數。
第四行: 將n劃分成若干個 奇正整數之和的劃分數。
第五行: 將n劃分成若干不同整數之和的劃分數。
第六行: 列印乙個空行
樣例輸入
5 2
樣例輸出
72333
提示
1.將5劃分成若干正整數之和的劃分為: 5, 4+1, 3+2, 3+1+1, 2+2+1, 2+1+1+1, 1+1+1+1+1
2.將5劃分成2個正整數之和的劃分為: 3+2, 4+1
3.將5劃分成最大數不超過2的劃分為: 1+1+1+1+1, 1+1+1+2, 1+2+2
4.將5劃分成若干 奇正整數之和的劃分為: 5, 1+1+3, 1+1+1+1+1
5.將5劃分成若干不同整數之和的劃分為: 5, 1+4, 2+3
五類整數劃分的結合
#include#includeint dp[110][110];//emmm...多次使用吧
void dp1(int n){//分解成若干正整數的劃分個數
memset(dp,0,sizeof(dp));
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==j)
dp[i][j]=dp[i][j-1]+1;
else if(j
NYOJ 571 整數劃分 三
描述 整數劃分是乙個經典的問題。請寫乙個程式,完成以下要求。輸入 每組輸入是兩個整數n和k。1 n 50,1 k n 輸出對於輸入的 n,k 第一行 將n劃分成若干正整數之和的劃分數。第二行 將n劃分成k個正整數之和的劃分數。第三行 將n劃分成最大數不超過k的劃分數。第四行 將n劃分成若干個 奇正整...
NYOJ 571 整數劃分 三
第一行 將n劃分成若干正整數之和的劃分數。狀態轉移方程 dp i j 和為i 最大數不超過j的拆分數 dp i j 可以分為兩種情況 1 拆分項至少有乙個j 2 拆分項乙個j也沒有 dp i j dp i j j dp i j 1 第二行 將n劃分成k個正整數之和的劃分數。dp n k k 相當於把...
nyoj 571 整數劃分 三 (遞迴)
描述 整數劃分是乙個經典的問題。請寫乙個程式,完成以下要求。當n 1時,不論m的值為多少 m 0 只有一種劃分即 當m 1時,不論n的值為多少,只有一種劃分即n個1,當n m時,由於最大值只能是n,所以此時f n,m f n,n 當n m時,根據劃分中是否包含n,可以分為兩種情況 1 劃分中包含n的...