刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

最大值

题目描述:

某校庆祝元旦需要采购一些瓜子在联欢会上食用,学校给了固定资金n元让小蓝去超市采购瓜子,且要求采购最多的瓜子。到了超市发现有m种瓜子,且都是成袋售卖。小蓝这下为难了,不知道如何才能用固定资金采购最多的瓜子。

在给出每种瓜子每袋的价格、每袋的重量,请你帮助小蓝计算下用n元最多能采购多少瓜子。

例如:

给定的资金n为80元,瓜子种类m为2种:

第一种瓜子每袋18元,每袋10千克;

第二种瓜子每袋30元,每袋20千克;

用80元资金最多可以买50千克瓜子(买2袋第二种,1袋第一种的,总重量50千克,使用资金78元)。

输入描述:

第一行输入两个正整数n(1 ≤n ≤1000)和m(1 ≤m ≤ 30),用一个空格隔开,n代表买瓜子的资金,m代表超市瓜子种类数

接下来输入m行,每行输入两个正整数p(1 < p < 101)和k(1 < k < 101)且用一个空格隔开,p代表每袋瓜子的价格,k代表每袋瓜子的重量

输出描述:

输出一个正整数,代表n元钱最多能采购到的瓜子重量(千克)


样例输入:

80 2
18 10
30 20

样例输出:

50

使用微信搜索喵呜刷题,轻松应对考试!

答案:

对于这个问题,我们可以使用贪心算法来解决。首先,我们按照瓜子的价格与重量的比值(即单位重量的价格)进行排序,比值越小的越优先购买。然后,我们按照顺序使用资金购买瓜子,直到资金用完或者无法再购买为止。最后,我们返回购买到的瓜子的总重量。

解析:

【喵呜刷题小喵解析】:
这个问题是一个典型的贪心算法问题。贪心算法是一种在每一步选择中都采取当前情况下最好或者最优(即最有利)的选择,从而希望导致结果是全局最好或者最优的算法。

在这个问题中,我们首先需要确定购买瓜子的顺序。根据题目要求,我们需要使用固定资金n元购买最多的瓜子,所以我们需要尽可能地购买单位重量价格更低的瓜子。因此,我们可以按照瓜子的价格与重量的比值进行排序,比值越小的越优先购买。

具体算法步骤如下:

1. 首先,输入资金n和瓜子种类数m,以及每种瓜子的价格和重量。
2. 计算每种瓜子的单位重量的价格,即价格除以重量,并按照从小到大的顺序进行排序。
3. 初始化购买的瓜子的总重量为0。
4. 遍历排序后的瓜子列表,对于每种瓜子,如果当前资金足够购买一袋,则购买一袋,并将当前资金减去该袋瓜子的价格,同时将购买的瓜子的总重量加上该袋瓜子的重量。
5. 如果遍历完所有瓜子后,资金还有剩余,则无法再购买更多的瓜子,直接返回购买的瓜子的总重量。
6. 如果遍历完所有瓜子后,资金刚好用完,则返回购买的瓜子的总重量。

这样,我们就可以使用贪心算法来解决这个问题,从而得到用n元最多能采购到的瓜子重量。
创作类型:
原创

本文链接:最大值 题目描述: 某校庆祝元旦需要采购一些瓜子在联欢会上食用,学校给了固定资金n元让小蓝去超市采购

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share