複雜的整數劃分問題 百練4119

2021-09-11 07:56:28 字數 822 閱讀 1670

將正整數n 表示成一系列正整數之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。

正整數n 的這種表示稱為正整數n 的劃分。

input

標準的輸入包含若干組測試資料。每組測試資料是一行輸入資料,包括兩個整數n 和 k。 

(0 < n <= 50, 0 < k <= n)

output

對於每組測試資料,輸出以下三行資料: 

第一行: n劃分成k個正整數之和的劃分數目 

第二行: n劃分成若干個不同正整數之和的劃分數目 

第三行: n劃分成若干個奇正整數之和的劃分數目

sample input

5 2
sample output

2

33

hint

第一行: 4+1, 3+2, 

第二行: 5,4+1,3+2 

第三行: 5,1+1+3, 1+1+1+1+1+1

#include #include #include using namespace std;

int n,k;

int dp1[55][55];//dp1[i][j]是把整數i分成j份

int dp2[55][55];//分成若干個不相等整數

int g[55][55];//分成若干偶數

int f[55][55];//分成若干奇數

void ac1()

}cout<=j)

else}}

cout<>n>>k)

return 0;

}

4119 複雜的整數劃分問題

總時間限制 200ms 記憶體限制 65536kb 描述將正整數n 表示成一系列正整數之和,n n1 n2 nk,其中n1 n2 nk 1 k 1 正整數n 的這種表示稱為正整數n 的劃分。輸入標準的輸入包含若干組測試資料。每組測試資料是一行輸入資料,包括兩個整數n 和 k。0 n 50,0 k n...

Openjudge 百練 03 複雜的整數劃分問題

總時間限制 200ms 記憶體限制 65536kb 描述 將正整數 n 表示成一系列正整數之和,n n1 n2 nk,其中n1 n2 nk 1 k 1 正整數 n 的這種表示稱為正整數 n 的劃分。輸入標準的輸入包含若干組測試資料。每組測試資料是一行輸入資料,包括兩個整數n 和 k。0 n 50,0...

dp演算法 poj 4119 複雜的整數劃分問題

總時間限制 200ms 記憶體限制 65536kb 描述將正整數n 表示成一系列正整數之和,n n1 n2 nk,其中n1 n2 nk 1 k 1 正整數n 的這種表示稱為正整數n 的劃分。輸入標準的輸入包含若干組測試資料。每組測試資料是一行輸入資料,包括兩個整數n 和 k。0 n 50,0 k n...