放苹果

作者: 雇个城管打天下 | 来源:发表于2018-08-30 14:29 被阅读24次
放苹果

解析

参考牛客网解析:

难点:
当苹果大于盘子时,(这是大前提,注意哦) 我们怎么确定有多少种放法. 此时我们考虑了分类.
思路来源: 分类计数原理:完成一件事情有n类办法,那么完成这件事共有N=m1+m2+…+m n 种不同的方法.
分类:
分为有空盘和没有空盘的两种情况.
检查分类
1. 完备性
是否囊括所有情况, 所有的放苹果方法,要么有空盘,要么没有空盘.
2. 分类是否重复
一类有空盘,一类无空盘,不会重复.
分类后,我们如何操作可以保证满足分类条件
1. 保证有空盘
单独拿一个盘子不放,此时的情形,对于放法数而言,是不是相当于f(apple, plate-1).
2. 保证没有空盘
首先每个盘子放一个苹果,这样不就可以保证了,此时的情形,对于放法数而言,是不是相当于f(apple-plate,plate)

代码

import java.util.*;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scanner = new Scanner(System.in);
        int m = scanner.nextInt();
        int n = scanner.nextInt();
        System.out.println(dp(m, n));
    }

    static int dp(int m, int n) {
        if (m == 0 || n == 1) {
            return 1;
        } else if (n > m) {
            return dp(m, m);
        } else {
            return dp(m, n - 1) + dp(m - n, n);
        }
    }
}

相关文章

  • 放苹果

    解析 参考牛客网解析: 难点:当苹果大于盘子时,(这是大前提,注意哦) 我们怎么确定有多少种放法. 此时我们考虑了...

  • 放苹果

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

  • 放苹果

    题目描述 把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,...

  • HWOJ放苹果

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

  • 递归例题:放苹果

    这里利用分类分别递归的思想,通过分析题目可知,不能通过先走一步,减少问题规模,而是直接分成几个大类,同时,注意规划...

  • 0035-放苹果

    问题描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)注意:5...

  • 动态规划-放苹果

    设f(m,n)为m个苹果,n个盘子的放法数目,则先对n作讨论,* 当n>m:必定有n-m个盘子永远空着,去掉它们对...

  • 动态规划之放苹果

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

  • HJ61 放苹果

    把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?注意:如果有7个苹果和3个盘子...

  • 4-20抽屉原理

    桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面至少放两个苹果。这一现象就...

网友评论

      本文标题:放苹果

      本文链接:https://www.haomeiwen.com/subject/cforwftx.html