题目:

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

输入:

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

输出:

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

样例:

1
7 3

答案:

8

详解:

最难理解的就是 m>=n的这种情况;
有空盘子时比较好理解,就是去掉一个盘子,就是至少有一个空盘子,因为随着递归的进行,盘子会越来越少。
最难理解的是放满时怎么办,放满时,会有dfs(m-n,n)这一步操作,这一步操作,其实是这样的,就好比7个苹果放在3个盘子里,我们可以先在每个盘子里都放一个苹果,然后把剩下的4个再放在3个都有一个苹果的盘子里。
所以可以把之前每个盘子里放的哪一个苹果当做不存在…嘿嘿嘿,这样就好想了很多。

代码如下:

#include<bits/stdc++.h>
using namespace std;
int DFS(int m,int n)  {if(m == 0 || n == 1)return 1;else if(n > m)return DFS(m, m);elsereturn DFS(m - n, n) + DFS(m, n - 1);
}
int main()  {int t, m, n;scanf("%d", &t);while(t--) {scanf("%d%d", &m, &n);printf("%d\n", DFS(m, n));}return 0;
}

DFS-递归与回溯之放苹果问题相关推荐

  1. 2.3 基本算法之递归变递推 放苹果 python

    http://noi.openjudge.cn/ch0203/666/ """ 2.3 基本算法之递归变递推 666 放苹果 http://noi.openjudge.c ...

  2. java递归分苹果_递归应用示例(放苹果)[较难 选听]

    ok,下面我们再看一个例子. 这个例子呢比较有意思. 这个例子名字叫放苹果.这是open jar 的上面比较经典的一道题目. 我们来看一下这个题目.说啊,有M个同样的苹果. 这M个苹果呢一模一样没有区 ...

  3. CCF NOI1073 放苹果

    问题链接:CCF NOI1073 放苹果. 时间限制: 1000 ms  空间限制: 262144 KB 题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的放法( ...

  4. 递归--练习4--noi666放苹果

    递归--练习4--noi666放苹果 一.心得 写出状态后勇敢假设 二.题目 666:放苹果 总时间限制:  1000ms 内存限制:  65536kB 描述 把M个同样的苹果放在N个同样的盘子里,允 ...

  5. HDU 1010题解这是一道简单的DFS加回溯题,看懂后就会对递归和回溯有较深刻的理解。...

    1 #include<iostream> 2 #include<cstdio> 3 4 using namespace std; 5 6 char s[7][7]; //将变量 ...

  6. 程序设计与算法----递归之放苹果问题

    问题描述 例题:放苹果 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问公有多少种不同的分法?5,1,1和1,5,1是同一种分法 输入 第一行是测试数据数目t(0<=t<=2 ...

  7. POJ1664 放苹果【递推+记忆化递归】

    放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 35209   Accepted: 21792 Description ...

  8. 算法一:递归(包含Hanoi问题、N皇后问题、逆波兰表达式、爬楼梯、放苹果、全排列)

    递归 递归在算法中具有很重要的地位,也是很多学习编程的初学者非常头疼的问题,看我的这篇文章,希望能为还处于迷雾中的你带来希望 首先我们要知道递归的作用: 1.可替代多重循环 2.解决本来就是用递归形式 ...

  9. 机试:放苹果(递归问题)

    通过者的解读 设dp(m,n) 为m个苹果,n个盘子的放法数目,则先对n作讨论,         当n>m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响.即if(n>m ...

最新文章

  1. 2018年中国65家机器人产业园布局与规划汇总盘点
  2. Linux 文件系统在线扩容实战
  3. 也可以改为while(input[0])或while(cininput[0])
  4. 这么多两院院士竟然来自同一个家族!
  5. 用provide/inject来实现简单的vuex状态管理功能
  6. gsonformat插件_没用过这些IDEA插件?怪不得写代码头疼
  7. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 11课
  8. spark相关原理介绍
  9. 在html中写python代码的语法和特点-----基于webpy的httpserver
  10. android数据共享 设计,水文数据共享平台移动端的设计与实现
  11. oracle时间相减得到天_oracle中计算两个日期之间得天数、月数、年数
  12. 大龄Android 开发们最担忧的事儿,太难了~
  13. 数字图像处理 - 什么是数字图像处理
  14. 07 Python数据类型详解
  15. 《简约至上》读书笔记
  16. DeprecationWarning: use options instead of chrome_options self.driver = webdriver.Chrome(chrome_op
  17. CTF题记——计划第一周
  18. STM32—驱动HC-SR04超声波测距模块
  19. 福昕 无法高亮 解决方案及PDF快捷键
  20. DevOps领域少不了这只向前的“青蛙”

热门文章

  1. 使用RMSE分析数据
  2. React单元测试:Jest+Enzyme
  3. Xrdp - 通过Windows的RDP连接Linux远程桌面(Ubuntu/CentOS/Redhat 7)(转载)
  4. 如何进入开源世界并打造自己的明星 Project?
  5. php oauth2 认证,laravel之passport oauth2认证之授权码详解
  6. flutter2.1升级flutter3.0
  7. BEAM188能做屈曲分析吗
  8. 黄帝内经(二)之人的身体结构即命运与从医入道 ,百姓日用而不知
  9. vue传参给iframe
  10. 【bzoj2832】宅男小C