南阳 oj 176 整数划分(二)

来源:互联网 发布:淘宝哪家香水是正品 编辑:程序博客网 时间:2024/05/19 10:40
/*
定义状态dp[i][j]大小为i,分解成j个数的和有多少种可能
状态转移方程为,dp[i][j]=dp[i-j][1]+dp[i-j][2]+...dp[i-j][j];
*/
#include<stdio.h>
#include<string.h>
int main()
{
    int dp[105][105],i,j,n,m,k,t;
    memset(dp,0,sizeof(dp));
    for(i=0; i<101; i++)
        dp[i][1]=1;
    for(i=2; i<101; i++)
        for(j=2; j<101&&j<=i; j++)
        {
            int sum=0;
            for(k=1; k<=j; k++)
                sum+=dp[i-j][k];
            dp[i][j]=sum;
        }
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&n,&m);
        printf("%d\n",dp[n][m]);
    }
    return 0;
}

0 0