P1025 数的划分

题目描述

将整数nn分成kk份,且每份不能为空,任意两个方案不相同(不考虑顺序)。

例如:n=7n=7,k=3k=3,下面三种分法被认为是相同的。

1,1,51,1,5;
1,5,11,5,1;
5,1,15,1,1.

问有多少种不同的分法。

输入输出格式

输入格式:

n,kn,k (6<n le 2006<n200,2 le k le 62k6)

输出格式:

11个整数,即不同的分法。

输入输出样例

输入样例#1: 复制
7 3
输出样例#1: 复制
4

说明

四种分法为:
1,1,51,1,5;
1,2,41,2,4;
1,3,31,3,3;
2,2,32,2,3.

#include<stdio.h>
#include<string.h>
int dp[220][10];
int main()
{
    int n, k, i, j;
    scanf("%d %d", &n, &k);
    dp[0][0] = 1;
    for(i = 1; i <= n; ++i)
    {
        for(j = 1; j <= k; ++j)
        {
            if(j > i)
                dp[i][j] = 0;
            else
                dp[i][j] = dp[i - 1][j - 1] + dp[i - j][j];
        }
    }
    printf("%d
", dp[n][k]);
    return 0;
}

  

原文地址:https://www.cnblogs.com/mjn1/p/10259332.html