zoukankan      html  css  js  c++  java
  • 数的划分(划分型)

    codevs 1039 数的划分

    http://codevs.cn/problem/1039/

    难度等级:黄金

    2001年NOIP全国联赛提高组

    题目描述 Description

    将整数n分成k份,且每份不能为空,任意两种划分方案不能相同(不考虑顺序)。
    例如:n=7,k=3,下面三种划分方案被认为是相同的。
    1 1 5

    1 5 1

    5 1 1
    问有多少种不同的分法。

    输入描述 Input Description

    输入:n,k (6<n<=200,2<=k<=6)

    输出描述 Output Description

    输出:一个整数,即不同的分法。

    样例输入 Sample Input

     7 3

    样例输出 Sample Output

    4

    数据范围及提示 Data Size & Hint

     {四种分法为:1,1,5;1,2,4;1,3,3;2,2,3;}

    f[i][j]表示把i分为j份的方案数

    初始化:f[0][0]=1

    转移:f[i][j]=f[i-1][j-1]+f[i-j][j]

    f[i-1][j-1]:划分的j份中至少有一份为1,把这个1拿出来,剩下的相当于把i-1分为j-1份

    f[i-j][j]:划分的j份中没有一份是1,每一份中都拿走1个1,剩下的相当于把i-j分为j份

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int n,k,f[201][7];
    int main()
    {
        scanf("%d%d",&n,&k);
        f[0][0]=1;
        for(int i=1;i<=n;i++)
         for(int j=1;j<=min(i,k);j++)
          f[i][j]=f[i-1][j-1]+f[i-j][j];
        printf("%d",f[n][k]);
    }
  • 相关阅读:
    JavaWeb-ajax
    数据库-条件查询和分页
    JSP-EL和JSTL
    ROS的STM32电机驱动
    rosserial_python serial_node.py分析--补遗
    rosserial_python serial_node.py分析
    Python的matplotlib绘图
    kNN算法与python
    利用网售的PID调制工具配置电机PID参数
    mbed的ticker问题
  • 原文地址:https://www.cnblogs.com/TheRoadToTheGold/p/6358839.html
Copyright © 2011-2022 走看看