zoukankan      html  css  js  c++  java
  • poj1664解题报告

    放苹果

    Time Limit: 1000MS
    Memory Limit: 10000K

    Total Submissions: 17562
    Accepted: 11076

    Description

    把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

    Input

    第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。

    Output

    对输入的每组数据M和N,用一行输出相应的K。

    Sample Input

    1
    7 3

    Sample Output

    8

    此题既可用求排列数的种类数的方法类似的按照非递减的顺序回溯得到个数也可按照整划分的思想递归求解,以下为递归求解:
    count(x,y)函数返回在整数x,划分的一系列单个整数不超过y的情况下的划分总数,它可由两种情况构成:
    一种是不会有y的出现;另一种是有一个y的出现(注意,此时,此后的递归同样允许y出现,故可有多个y的情况)

    #include<iostream>
    using namespace std;
    int count(int x,int y)
    {
    if(y==1||x==0) return 1;
    if(x<y) return count(x,x);
    return count(x,y-1)+count(x-y,y);
    }
    int main()
    {
    int t,m,n;
    cin
    >>t;
    for(int i=0;i<t;i++)
    {
    cin
    >>m>>n;
    cout
    <<count(m,n)<<endl;
    }
    return 0;
    }

  • 相关阅读:
    第四章 分布式扩展
    第三章 2.性能压测,容量问题
    第三章 1.云部署,打包上传
    MySQL语法大全
    Python随手记
    Python操作Mysql中文乱码问题
    Python基础函数
    破解电信校园网路由限制
    ThinkPHP扩展函数的三个方法
    $_SERVERS预定义变量
  • 原文地址:https://www.cnblogs.com/easyFancy/p/2082759.html
Copyright © 2011-2022 走看看