2240. 买钢笔和铅笔的方案数

这篇具有很好参考价值的文章主要介绍了2240. 买钢笔和铅笔的方案数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Tag

【枚举】【数学】【2023-09-01】


题目来源

2240. 买钢笔和铅笔的方案数2240. 买钢笔和铅笔的方案数,LeetCode每日一题,数学,枚举,算法,c++

题目解读

现在你有一笔钱 total,用来购买钢笔和铅笔,它们的价格分别为 cost1cost2,试问你可以有多少种不同的购买方案。其中,出现的价格与钱数都是整数,购买笔的数量可以是任意数目(包括 0)。


解题思路

方法一:枚举

我们拥有的这笔钱最多可以买 ⌊ t o t a l c o s t 1 ⌋ \lfloor \frac{total}{cost1} \rfloor cost1total 支钢笔,加上可以买 0 支钢笔,那么我们买钢笔的方案数为 1 + ⌊ t o t a l c o s t 1 ⌋ 1 + \lfloor \frac{total}{cost1} \rfloor 1+cost1total

现在我们枚举可以买的钢笔的数量 i,则 ⌊ t o t a l − i ∗ c o s t 1 c o s t 2 ⌋ \lfloor \frac{total - i*cost1}{cost2} \rfloor cost2totalicost1 表示买了 i 支钢笔的情况下剩下的钱可以买的铅笔的数量,也表示此时的方案数(不包括买 0 支铅笔的情况),那么 1 + ⌊ t o t a l − i ∗ c o s t 1 c o s t 2 ⌋ 1 + \lfloor \frac{total - i*cost1}{cost2} \rfloor 1+cost2totalicost1 则表示买了 i 支钢笔时的方案数(包括买 0 支铅笔的情况),于是总的方案数为:

∑ i = 0 ⌊ t o t a l c o s t 1 ⌋ ( 1 + ⌊ t o t a l − i × c o s t 1 c o s t 2 ⌋ ) \sum_{i=0}^{\lfloor \frac{total}{cost1} \rfloor}{\left( 1+\lfloor \frac{total-i\times cost1}{cost2} \rfloor \right)} i=0cost1total(1+cost2totali×cost1)

实现代码

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

复杂度分析

时间复杂度: O ( ⌊ t o t a l c o s t 1 ⌋ ) O(\lfloor \frac{total}{cost1} \rfloor) O(⌊cost1total⌋)

空间复杂度: O ( 1 ) O(1) O(1)


写在最后

以上就是本篇文章的内容了,感谢您的阅读。🍗🍗🍗

如果感到有所收获的话可以给博主点一个 👍 哦。

如果文章内容有任何错误或者您对文章有任何疑问,欢迎私信博主或者在评论区指出。💬💬💬文章来源地址https://www.toymoban.com/news/detail-687587.html

到了这里,关于2240. 买钢笔和铅笔的方案数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Leetcode每日一题:1444. 切披萨的方案数(2023.8.17 C++)

    目录 1444. 切披萨的方案数 题目描述: 实现代码与解析: 二维后缀和  + 动态规划 原理思路:         给你一个  rows x cols  大小的矩形披萨和一个整数  k  ,矩形包含两种字符:  \\\'A\\\'  (表示苹果)和  \\\'.\\\'  (表示空白格子)。你需要切披萨  k-1  次,得到  k  块披萨

    2024年02月12日
    浏览(52)
  • 【每日一题Day191】LC2423删除字符使频率相同 | 枚举 分类讨论

    给你一个下标从 0 开始的字符串 word ,字符串只包含小写英文字母。你需要选择 一个 下标并 删除 下标处的字符,使得 word 中剩余每个字母出现 频率 相同。 如果删除一个字母后, word 中剩余所有字母的出现频率都相同,那么返回 true ,否则返回 false 。 注意: 字母 x 的 频

    2024年02月01日
    浏览(65)
  • 【每日一题Day311】LC1761一个图中连通三元组的最小度数 | 枚举

    给你一个无向图,整数 n 表示图中节点的数目, edges 数组表示图中的边,其中 edges[i] = [ui, vi] ,表示 ui 和 vi 之间有一条无向边。 一个 连通三元组 指的是 三个 节点组成的集合且这三个点之间 两两 有边。 连通三元组的度数 是所有满足此条件的边的数目:一个顶点在这个三

    2024年02月10日
    浏览(42)
  • 【每日一题Day217】LC2451差值数组不同的字符串 | 枚举+变量记录

    给你一个字符串数组 words ,每一个字符串长度都相同,令所有字符串的长度都为 n 。 每个字符串 words[i] 可以被转化为一个长度为 n - 1 的 差值整数数组 difference[i] ,其中对于 0 = j = n - 2 有 difference[i][j] = words[i][j+1] - words[i][j] 。注意两个字母的差值定义为它们在字母表中 位置

    2024年02月07日
    浏览(48)
  • leetcode每日一题44

    图论 dfs/bfs dfs代码框架 思路:本题要求找到被x围绕的陆地,所以边界的陆地O肯定不符合条件。那么我们只要从周边找到陆地O然后 通过 dfs或者bfs 将周边靠陆地且相邻的陆地O都变成A,然后再去重新遍历地图的时候,把剩下的O变成X,再把所有的A变成O。 确认递归函数,参数

    2024年01月19日
    浏览(45)
  • [Week 20]每日一题(C++,图论,数学,搜索)

    目录 T1 [Daimayuan] Collision(C++,多源最短路) 题目描述 输入描述 输出描述 样例输入1 样例输出1 样例输入2 样例输处2 数据范围 解题思路 T2 [Daimayuan] 农田划分(C++,数学,BFS) 题目描述 题目输入 题目输出 样例输入1 样例输出1 样例输入2 样例输出2 数据范围 解题思路 T3 [Dai

    2024年02月08日
    浏览(45)
  • 每日一题:leetcode 57 插入区间

    给你一个  无重叠的  , 按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 示例 2: 示例 3: 示例 4: 示例 5: 提示: 0 = intervals.length = 104 intervals[i].length == 2 0 = int

    2024年02月11日
    浏览(46)
  • 【每日一题】Leetcode - 283. 移动零

    Leetcode - 283. 移动零 从右向左遍历,遇到0,就将后面所有元素前移,同时更新长度,使其减1,因为移动n次,倒数n位就被0占据,后续操作可忽略 前面的操作,从右向左,每次遇到0移动都要跑半个数组,慢在整体前移; 换个思路,从左向右,记录首个0的位置,将后面的第一

    2024年02月11日
    浏览(45)
  • 【LeetCode每日一题】——566.重塑矩阵

    矩阵 简单 566.重塑矩阵 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。 给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。 重构后

    2024年02月14日
    浏览(47)
  • 【LeetCode每日一题】——575.分糖果

    哈希表 简单 575.分糖果 Alice 有 n 枚糖,其中第 i 枚糖的类型为 candyType[i] 。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。 医生建议 Alice 要少摄入糖分,只吃掉她所有糖的 n / 2 即可(n 是一个偶数)。Alice 非常喜欢这些糖,她想要在遵循医生建议的情况下,尽可

    2024年02月13日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包