【每日一题Day312】LC2240买钢笔和铅笔的方案数 | 完全背包 数学

简介: 【每日一题Day312】LC2240买钢笔和铅笔的方案数 | 完全背包 数学
买钢笔和铅笔的方案数【LC2240】

给你一个整数 total ,表示你拥有的总钱数。同时给你两个整数 cost1cost2 ,分别表示一支钢笔和一支铅笔的价格。你可以花费你部分或者全部的钱,去买任意数目的两种笔。

请你返回购买钢笔和铅笔的 不同方案数目

一眼背包问题 原来数学也可以解决

完全背包
  • 思路
    问题可以转化为,两种物品重量分别为cost1cost2,背包最大容量为total,物品数量不限时,填满不同背包容量时总共方案数

image.png

class Solution {
    public long waysToBuyPensPencils(int total, int cost1, int cost2) {
        long[] dp = new long[total + 1];// 花费i元去买任意数目的两种笔的方案数
        dp[0] = 1L;// 花费0元
        // 遍历物品钢笔
        for (int i = cost1; i <= total; i += cost1){
            dp[i] += dp[i - cost1];
        }
        // 遍历物品铅笔
        for (int i = cost2; i <= total; i++){      
            dp[i] += dp[i - cost2];
        }
        // 遍历记录总共的方案数目
        long res = 0L;
        for (int i = 0; i <= total; i++){
            res += dp[i];
        }
        return res;
    }
}

image.png

class Solution {
    public long waysToBuyPensPencils(int total, int cost1, int cost2) {
        long res = 0L;
        for (int i = 0; i <= total; i += cost1){
            res += (total - i) / cost2 + 1;
        }
        return res;
    }
}

image.png

目录
相关文章
|
5月前
【每日一题Day297】LC1444切披萨的方案数 | 动态规划+二维前缀和
【每日一题Day297】LC1444切披萨的方案数 | 动态规划+二维前缀和
55 0
|
5月前
|
Serverless
P1149 [NOIP2008 提高组] 火柴棒等式
P1149 [NOIP2008 提高组] 火柴棒等式
|
5月前
|
C语言
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
|
5月前
【每日一题Day224】LC2517礼盒的最大甜蜜度 | 二分答案
【每日一题Day224】LC2517礼盒的最大甜蜜度 | 二分答案
28 0
|
5月前
【每日一题Day165】LC1039多边形三角剖分的最低得分 | 区间dp
【每日一题Day165】LC1039多边形三角剖分的最低得分 | 区间dp
51 0
|
5月前
【每日一题Day314】LC1921消灭怪物的最大数量 | 贪心+排序
【每日一题Day314】LC1921消灭怪物的最大数量 | 贪心+排序
38 0
|
5月前
【每日一题Day360】LC1465切割后面积最大的蛋糕 | 贪心
【每日一题Day360】LC1465切割后面积最大的蛋糕 | 贪心
44 0
|
5月前
【每日一题Day126】LC1140石子游戏Ⅱ | 博弈dp 记忆化搜索
【每日一题Day126】LC1140石子游戏Ⅱ | 博弈dp 记忆化搜索
45 0
|
11月前
|
算法 测试技术 容器
代码随想录算法训练营第四十二天 | LeetCode 1049. 最后一块石头的重量 II、494. 目标和、474. 一和零
代码随想录算法训练营第四十二天 | LeetCode 1049. 最后一块石头的重量 II、494. 目标和、474. 一和零
41 1
|
C++
蓝桥杯 2240. 买钢笔和铅笔的方案数c++解法
蓝桥杯 2240. 买钢笔和铅笔的方案数c++解法
118 0