题目描述

小明非常喜欢吃梨,有一天他得到了ACMCLUB送给他的一筐梨子。由于他比较仗义,就打算把梨子分给好朋友们吃。现在他要把M个梨子放到N个盘子里面(我们允许有的盘子为空),你能告诉小明有多少种分法吗?(请注意,例如有三个盘子,我们将5,1,1和1,1,5,视为同一种分法)

输入

输入包含多组测试样例。每组输入的第一行是一个整数t。

接下来t行,每行输入两个整数M和N,代表有M个梨和N个盘子。(M和N均大于等于0)

输出

对于每对输入的M和N,输出有多少种方法。

样例输入

1
7 3

样例输出

8
题解
1、如果盘子数为0,那么无论多少个梨,方法都为1(包括0个梨)
2、如果梨的数量为0,那么无论多少个盘子,方法都为1(包括0个盘子)
3、如果盘子和梨的数量都不为0,那么有两种情况
(1)梨的数目(m)大于盘子的数目(n),那么方法数f[m][n]应该是f[m-n][n]+f[m][n-1],即每一个盘子都有梨,那么方法数应该是梨-盘子(假设每一个盘子都放入一个梨,那么前式就是所剩下的梨),将他们放入n个盘子中,这是第一种可能,第二种可能就是至少有一个盘子为空,即f[m][n-1]
(2)如果梨的数目(m)小于盘子的数目(n),那么方法数就是将m个梨放在m个盘子里面

代码如下
dp

#include<iostream>
#include<cstring>
using namespace std;
int f[1000][1000];
int main()
{int n,i,j,x,y,t;while(cin>>t){while(t--){cin>>x>>y;//梨,盘for(i=0;i<=x;i++)f[i][1]=1,f[i][0]=1;//for(i=0;i<=y;i++)f[0][i]=1,f[1][i]=1;//for(i=1;i<=x;i++){for(j=2;j<=y;j++){if(i>=j) f[i][j]=f[i-j][j]+f[i][j-1];else f[i][j]=f[i][i]; }}cout<<f[x][y]<<endl;   }}return 0;
}

递归

#include<stdio.h>
int f(int m,int n)
{if(m == 0||n == 1)return 1;if(m >= n)return f(m-n,n) + f(m,n-1);return f(m,m);
}
int main()
{int m,n;int t;int i;while(scanf("%d",&t)!=EOF){for( i = 1; i <= t; i ++){scanf("%d%d",&m,&n);printf("%d\n",f(m,n));}}return 0;
}

题解:分梨----递归,动态规划相关推荐

  1. 常用十大算法 非递归二分查找、分治法、动态规划、贪心算法、回溯算法(骑士周游为例)、KMP、最小生成树算法:Prim、Kruskal、最短路径算法:Dijkstra、Floyd。

    十大算法 学完数据结构该学什么?当然是来巩固算法,下面介绍了十中比较常用的算法,希望能帮到大家. 包括:非递归二分查找.分治法.动态规划.贪心算法.回溯算法(骑士周游为例).KMP.最小生成树算法:P ...

  2. 动态规划(分梨、最长公共子序列)

    1.分梨: 题目描述 小明非常喜欢吃梨,有一天他得到了ACMCLUB送给他的一筐梨子.由于他比较仗义,就打算把梨子分给好朋友们吃.现在他要把M个梨子放到N个盘子里面(我们允许有的盘子为空),你能告诉小 ...

  3. 入门级动态规划-分梨

    1131: 分梨 时间限制: 1 Sec   内存限制: 32 MB 提交: 575   解决: 181 [ 提交][ 状态][ 讨论版][命题人: 外部导入][ 下载FPS1元][ 下载测试数据1元 ...

  4. c语言函数孔融分梨,ACM题目:孔融分梨

    /*                             孔融分梨 孔融让梨,人人称颂:孔融分梨,也不简单.孔融有M个同样的梨,要分给N个人.每 个人手上有一个同样的盘子,孔融要将梨放入盘中,允许 ...

  5. PTA—输出全排列 (20分) 递归回溯思想

    PTA-输出全排列 (20分) 递归回溯思想 题目要求: 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出 ...

  6. [Leetcode][第546题][JAVA][移除盒子][递归][动态规划]

    [问题描述][困难] [解答思路] 1. 递归 动态规划 class Solution {public int removeBoxes(int[] boxes) {int[][][] dp = new ...

  7. 3孔融分梨 4分 函数c语言,孔融分梨有绝招

    孔融分梨有绝招以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 孔融是东汉末年的文学家,从小聪明过人,而且还很有礼貌.他6 ...

  8. c语言编码孔融分梨,孔融分梨的故事

    孔融分梨的故事 孔融是东汉末年的大文学家,他聪明过人.他6岁让梨的故事,小朋友们都知道了,但孔融分梨的故事,知道的人就不多了. 有一天,孔融的伯伯.叔叔.婶婶带着孩子来做客.孔融高兴极了,因为孔融长到 ...

  9. 7-207 孔融分梨(函数实现)7-208 sdut-C语言实验- 数列求和2

    目录 7-207 孔融分梨(函数实现) 7-208 sdut-C语言实验- 数列求和2 7-207 孔融分梨(函数实现) 分数 10 全屏浏览题目 切换布局 作者 lsr 单位 枣庄学院 孔融没有兄弟 ...

最新文章

  1. 想去Google做AI?面试题在手,全程无忧!
  2. Linux编写脚本查看mod,Linux shell脚本编写基础
  3. 浅谈.NET技术公司的实习生培养
  4. 从程序员到上市公司合伙人,怎么少踩坑?
  5. oracle 12.2 启用分片,关于Oracle Sharding,你想知道的都在这里
  6. Linux 中mysql常用命令
  7. Linix中Dockerfile部署Spring Boot项目
  8. ftp下载,6步掌握ftp下载软件的使用方法
  9. Windows10添加自定义右键菜单
  10. 如何查看自己的支付宝花呗是否已经接入央行征信? #花呗部分用户接入央行征信#
  11. 辟谣!微信支付宝收款码将不能用于经营性收款?
  12. 《欲罢不能:刷屏时代如何摆脱行为上瘾》读书笔记
  13. 4054原厂LTH7R座充充电管理IC
  14. 计算机系统的存储器系统的任务是,第2章 计算机系统的组成.ppt
  15. Jlink 烧写文件到 nandflash norflash
  16. 战神遗迹服务器未响应怎么回事,战神遗迹怎么进不去 黑屏闪退解决方法介绍...
  17. TechEd2011之游园录(1)
  18. intellij idea weblogic 下面 怎么远程断点
  19. nginx配置本地静态资源路径
  20. 一分钟学会看k线图_教你一分钟怎样学会看k线图(纯干货)

热门文章

  1. Elasticsearch搜索引擎优化指南之分词优化
  2. Linux下添加桌面快捷方式
  3. 河南省三门峡市谷歌高清卫星地图下载
  4. ligerui tree mysql_jQuery LigerUI ligerGrid 在开发中的应用记录
  5. pycharm无法消除出现的错误提示的可能解决方案
  6. 我的世界服务器聊天显示坐标,我的世界端游怎么显示坐标
  7. 如何启用计算机睡眠功能,教你计算机休眠如何设置
  8. 跟着团子学SAP SD-RRB(按资源开票)流程演示及核心配置(DIP参数文件) DP80/DP81/DP90/DP91
  9. Strace 解决性能问题案例一则
  10. Ubuntu16.04的安装教程