zoukankan      html  css  js  c++  java
  • NOIP2001 数的划分

    题二 数的划分(20分)

    问题描述
    将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。
    例如:n=7,k=3,下面三种分法被认为是相同的。
    1,1,5; 1,5,1; 5,1,1;
    问有多少种不同的分法。
    输入:n,k (6<n<=200,2<=k<=6)
    输出:一个整数,即不同的分法。

    样例
    输入: 7 3
    输出:4 {四种分法为:1,1,5;1,2,4;1,3,3;2,2,3;}

    【思路】

      递推。

      递推式d[i][j]=d[i-1][j-1]+d[i-j][j];

    【代码】

     1 #include<iostream>
     2 using namespace std;
     3 
     4 int d[210][10];
     5 int n,k;
     6 int main() {
     7     cin>>n>>k;
     8     d[0][0]=1;
     9     for(int i=1;i<=n;i++)
    10      for(int j=1;j<=k;j++) 
    11        if(i>=j) 
    12          d[i][j]=d[i-1][j-1]+d[i-j][j];
    13     cout<<d[n][k];
    14     return 0;
    15 }
  • 相关阅读:
    类型转换
    struts2默认拦截器
    struts2自定义拦截器
    struts2之I18N
    代理模式
    抽象类 abstract class 接口
    java基础题
    final
    内部类
    tomcat 端口占用问题解决
  • 原文地址:https://www.cnblogs.com/lidaxin/p/4859553.html
Copyright © 2011-2022 走看看