首页 > 试题广场 >

放苹果

[编程题]放苹果
  • 热度指数:159756 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?
注意:如果有7个苹果和3个盘子,(5,1,1)和(1,5,1)被视为是同一种分法。

数据范围:



输入描述:

输入两个int整数



输出描述:

输出结果,int型

示例1

输入

7 3

输出

8
头像 法拉利201903231900848
发表于 2019-08-22 14:37:05
''' 放苹果分为两种情况,一种是有盘子为空,一种是每个盘子上都有苹果。 令(m,n)表示将m个苹果放入n个盘子中的摆放方法总数。 1.假设有一个盘子为空,则(m,n)问题转化为将m个苹果放在n-1个盘子上,即求得(m,n-1)即可 2.假设所有盘子都装有苹果,则每个盘子上至少有一个苹果,即最多剩下 展开全文
头像 不会做题的小菜鸡
发表于 2021-11-08 03:09:00
题目分析 题目给我们苹果的数量m和盘子的数量n 要将苹果放在盘子里,可以允许空盘,问有多少种放置方案 但是盘子顺序是可以任意调换的,调换前后认为是同一种放置方案 方法一:递归 实现思路 我们递归的最终结果是要返回solution(m,n) 递归退出条件: 如果没有苹果,则说明放置已经完 展开全文
头像 中年美少女
发表于 2020-09-08 16:57:45
设f(m,n) 为m个苹果,n个盘子的放法数目,则先对n作讨论, 当n>m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响。即if(n>m) f(m,n) = f(m,m)   当n<=m:不同的放法可以分成两类: 1、有至少一个盘子空着,即相当 展开全文
头像 玖语
发表于 2020-06-23 12:12:36
采用递归的思想将此事件无限细分,每个事件可以分为f(m,n)=f(m-n,n)+f(m,n-1);f(m-n,n)是当苹果数大于等于盘子数的情况,f(m,n-1)是当苹果数小于盘子数的情况。当此事件分到苹果数为0或苹果数为1或盘子数为1的时候返回1,当苹果数小于0或盘子数小于等于0返回0. impo 展开全文
头像 江南好___
发表于 2021-12-09 12:38:20
描述 题目描述 把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 示例 输入: 7 3 输出: 8 知识点:递归,动态规划 难度:⭐⭐ 题解 方法一:递归 解题思路: 通过递归,定义好递归的功能以及设置递 展开全文
头像 enstein
发表于 2020-04-13 09:09:00
放苹果组合问题--DP实现 初始状态转移矩阵dp[n][m],dp[i][j]表示i个盘子放j个苹果的放法; 状态转移方程为 #include<iostream> #include<vector> using namespace std; int putapples(in 展开全文
头像 脱缰的哈士奇~
发表于 2022-06-18 09:38:42
华为-称苹果(好题) HJ61 放苹果 | 华为机试 动态规划 使用动态规划思想求解,记 dp[i][j] 表示使用 i 个苹果放入到 j 个盘子的方案数。 若 i<j,即苹果比盘子数小 比如将 2 个苹果放入 3 个盘子,必然会有一个盘子为空,即{0,x,y},其中一位固定为 0,不 展开全文
头像 godhands
发表于 2021-11-11 23:46:57
描述 题目描述 首先我们就是有 m 个苹果,有 n 个盘子,然后问我们把这些苹果放到这些盘子里面,问我们有多少种情况,这里我们注意一下,题目中给了一个很重要的点,就是如果5, 1, 1和 1,1,5是同一种情况,那么这个题瞬间就好做了很多,我们就不用考虑这种排列组合的情况了,题意就是这样 注意: 本 展开全文
头像 硅谷小码农
发表于 2022-03-29 23:46:32
***我是真的看不懂这个吊毛动态规划是什么JB狗币逻辑我真是草了滚 import java.util.*; public class Main { public static void main(String[] args) { Scanner scan = new Scan 展开全文
头像 saving~
发表于 2021-09-26 21:09:32
动态规划:尽量考虑极端情况,然后总结 let str; while(str = readline()){ let arr = str.split(' '); let m = parseInt(arr[0]),n=parseInt(arr[1]); console.log(getCoun 展开全文