题解 | #放苹果#

放苹果

https://www.nowcoder.com/practice/bfd8234bb5e84be0b493656e390bdebf

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            int[] dp = new int[in.nextInt() + 1];
            Arrays.fill(dp, 1);
            int plat = in.nextInt();
            for (int i = 2; i <= plat; i++) for (int j = 0; j < dp.length; j++) if (j - i >= 0) dp[j] += dp[j - i];
            System.out.println(dp[dp.length - 1]);
        }
    }
}

动态规划:

最后一个盘子有两种可能

一种是有空盘,假设最后一个盘子就是空盘之一,所以直接等于少一个盘子的结果

另一种是没有空盘,先往所有盘子放苹果,然后就等于苹果数减少盘子数的结果

因此推出状态转移公式:dp[j] += dp[j - i];

#算法#
全部评论

相关推荐

小红书 后端开发 总包n+8w+期权
点赞 评论 收藏
分享
10-04 17:25
门头沟学院 Java
snqing:Java已经饱和了,根本不缺人。随便一个2000工资的都200人起投递
点赞 评论 收藏
分享
牛客101244697号:这个衣服和发型不去投偶像练习生?
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务