• F


    F - 小晴天老师系列——苹果大丰收

    Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others)
    Submit Status

    Problem Description

    小晴天的后花园有好多好多的苹果树,某天,苹果大丰收~小晴天总共摘了M个苹果,我们假设苹果之间是不可分辨的。

    为了保存苹果,小晴天买了N个一模一样的箱子,想要把苹果放进去,允许有的箱子是空的,请问小晴天有多少种不同的放法呢?

    例如对于4个苹果,3个箱子,2+1+1和1+2+1和1+1+2 是同一种分法。

    Input

    多组数据,首先是一个正整数t(t<=100)表示数据的组数。

    每组数据均包含二个整数M和N(1<=M,N<=10)。

    Output

    对于每组数据,输出一个整数,表示不同的放法数。

    Sample Input

    1
    7 3

    Sample Output

    8

    Hint

    对于7个苹果,3个箱子

    有7+0+0=6+1+0=5+2+0=4+3+0=5+1+1=4+2+1=3+2+2=3+3+1

    这8种放法。

    思路:这以前做过的一题一样,不过这是暴力专题,就用暴力的方法过了。。。

    按照每次放的方式,从多到少一次放苹果,

    比如7 3,的话就是 :

        7  0  0

        6  1  0

               5  2  0

           5  1  1

        4  3  0

        4  2  1

        3  3  1

        3  2  2

    是不是发现了什么规律哈,从左边到右边依次递减,而且总和会等于M,且数的个数不能够超过N,所暴力解决:

     1 #include <iostream>
     2 #include <stdio.h>
     3 using namespace std;
     4 int M,N;
     5 int SUM;
     6 void BFS(int sum,int j,int Num)/*BFS(i,j,k),i表示当前数的总和,*/
     7 {                               /*j标记第几个数,k表示当前的数*/
     8     int i;
     9     if(j<=N&&sum==M){SUM++;return ;}/*总和等于M且数的个数小于N为一种方法*/
    10     for(i=Num;i>0;i--)/*每一次取的数都要小于或者等于当前的数*/
    11     {
    12         if(sum+i<=M)/*判断是否超出总和*/
    13         {
    14             BFS(sum+i,j+1,i);
    15         }
    16     }
    17 }
    18 int main()
    19 {
    20     int i,T;
    21     scanf("%d",&T);
    22     while(T--)
    23     {
    24         scanf("%d%d",&M,&N);
    25         SUM=0;
    26         for(i=M;i*N>=M;i--)
    27         {
    28             BFS(i,1,i); 
    29         }
    30         printf("%d
    ",SUM);
    31     }
    32     return 0;
    33 }
    View Code

    以前的一题目放苹果:http://www.cnblogs.com/LWF5201314614/p/3750313.html

    转载请备注:
    **************************************
    * 作者: Wurq
    * 博客: https://www.cnblogs.com/Wurq/
    * Gitee: https://gitee.com/wurq
    **************************************
  • 相关阅读:
    Maven下Flex国际化配置
    Adobe AIR and Flex
    jQuery: 刨根问底 attr and prop两个函数的区别
    HTML5[8]: 图文混排,图片与文字居中对齐
    HTML5[7]: 实现网页版的加载更多
    HTML5[6]:多行文本显示省略号
    HTML5[5]:在移动端禁用长按选中文本功能
    HTML5[4]:去除不必要的标签,完全使用css实现样式
    HTML5[3]:中文换行
    HTML5[2]:使用viewport控制手机浏览器布局
  • 原文地址:https://www.cnblogs.com/Wurq/p/4449026.html
Copyright © 2020-2023  润新知