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

简答题

2.糖果
由于在维护世界和平的事务中做出巨大贡献,Dzx被赠予糖果公司2010年5月23日当天无限量糖果免费优惠券。在这一天,Dzx可以从糖果公司的N件产品中任意选择若干件带回家享用。糖果公司的N件产品每件都包含数量不同的糖果。Dzx希望他选择的产品包含的糖果总数是K的整数倍,这样他才能平均地将糖果分给帮助他维护世界和平的伙伴们。当然,在满足这一条件的基础上,糖果总数越多越好。Dzx最多能带走多少糖果呢? 注意:Dzx只能将糖果公司的产品整件带走。
时间限制:7000
内存限制:65536
输入
第一行包含两个整数N(1<=N<=100)和K(1<=K<=100) 以下N行每行1个整数,表示糖果公司该件产品中包含的糖果数目,不超过1000000
输出
符合要求的最多能达到的糖果总数,如果不能达到K的倍数这一要求,输出0
样例输入
```
5 7
1
2
3
4
5
```
样例输出
```
14
```
提示
Dzx的选择是2+3+4+5=14,这样糖果总数是7的倍数,并且是总数最多的选择。

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

答案:

解析:

【喵呜刷题小喵解析】本题要求Dzx选择若干件糖果公司的产品,使得选择的糖果总数是K的倍数,且总数最多。我们可以采用贪心算法来解决这个问题。首先,我们将糖果公司的N件产品按照包含的糖果数量从大到小排序。然后从最大的产品开始累加,直到总数达到K的倍数为止。这样可以保证在满足K的倍数条件的基础上,总数尽可能多。具体的算法如下:1. 读取输入数据,得到N和K的值,以及N件产品包含的糖果数量。2. 对N件产品按照糖果数量从大到小排序。3. 初始化总糖果数量为0,计数器count为0。4. 从最大的产品开始累加,更新总糖果数量。如果总糖果数量是K的倍数,记录当前的产品数量count,并跳出循环。5. 如果count为0,说明无法选择到满足K的倍数的产品,输出0。6. 否则,输出选择的产品列表和总糖果数量。在本题的示例输入中,N=5,K=7,糖果公司包含的产品数量分别为1、2、3、4、5。我们按照糖果数量从大到小排序后得到5、4、3、2、1。然后从最大的产品5开始累加,得到总糖果数量为15,不是7的倍数。接着累加产品4,得到总糖果数量为14,是7的倍数,且总数最多。因此,输出14。
创作类型:
原创

本文链接:2.糖果由于在维护世界和平的事务中做出巨大贡献,Dzx被赠予糖果公司2010年5月23日当天无限量糖

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

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

分享考题
share