C++采购大米

这篇博客介绍了一个关于如何使用C++编程解决大米采购问题的实例。问题背景是志愿者小Z的妈妈需要在多个供应商中选择购买大米,目标是使总花费最小。输入包含供应商数量和大米需求量,输出是最小花费。博主提供了贪心策略的解题思路,即按单价从低到高排序选择供应商,并给出了AC代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

采购大米

题目描述
目前全国都在饱受新型冠状病毒疫情的困扰,疫情当前我们最大的贡献就是闭门不出。同时各个社区也有社区志愿者战斗在”防疫一线”,帮助居民采购生活物资,在社区门口管理和登记车辆和行人的出口等。小Z的妈妈就是社区志愿者中的一员,负责物资的采购,而今天要采购的物资是大米,小Z的妈妈一共需要采买M斤大米,小Z的妈妈已经拿到了N名大米供应商的信息,每个供应商的价格不同,每个供应商的供应量也不一定相同,小Z的妈妈需要挑选出一些供应商来满足采买需求。

但是小Z的妈妈比较头疼,若要采购足够量的大米(如果供应量不够、则尽可能多的采购),如何采购才能使得花费最小呢?请你帮助小Z的妈妈来解决这个问题吧。

输入格式
第一行,两个整数N和M,N表示的是大米供应商的数量,M表示需要采买的大米总量。

1≤N≤1000,0≤M≤10^6

接下来N行,是用空格隔开的一个小数和一个整数,分别表示第i个供应商的单价xi和这个供应商的供应量yi

1≤Xi≤10,0≤yi≤10^6

输出格式
一行,一个小数,表示小Z妈妈要采购M斤大米所需要的最小花费,小数点后保留一位小数。

输入输出样列
输入样例1:
5 1000
1.9 100
2.1 200
1.8 300
2.2 800
2.5 400
输出样例1:
2030.0
说明
需要采购的代码是1000斤,1.8元的供应商采购300斤,1.9元的供应商采购100斤,2.1元的供应商采购200斤,2.2元的供应商采购4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值