4646: 划分数
时间限制(普通/Java):1000MS/3000MS 内存限制:65536KByte
总提交: 26 测试通过:11
总提交: 26 测试通过:11
描述
将整数n分成m份,求划分的种数,注意每份不为空,不考虑顺序。
比如整数4的划分,1 1 2 和 1 2 1 以及2 1 1 为同一种划分。
输入
多组测试样例,每组两个整数。n和m。(6<n<=200,2<=m<=6)
输出
每组测试样例输出一行。输出一个整数表示划分的种数。
样例输入
7 3
样例输出
4
提示
7的划分有{1,1,5;1,2,4;1,3,3;2,2,3}
题目来源
//简单dp
#include <stdio.h>
#include <string.h>
int n,m,ans;
int dp[205][10];
int main()
{
int i,j;
memset(dp,0,sizeof(dp));
for(i=1;i<=200;i++)
{
dp[i][1]=1;
}
for(i=1;i<=200;i++)
{
for(j=2;j<=i&&j<=6;j++)
{
dp[i][j]=dp[i-1][j-1]+dp[i-j][j];
}
}
while(~scanf("%d%d",&n,&m))
{
printf("%d\n",dp[n][m]);
}
}