洛谷【p2619】奶牛工资

博客介绍了洛谷【p2619】奶牛工资问题,其中约翰需要使用不同面额的钞票支付贝西的工资。题目保证大面额钞票是小面额的整数倍。通过贪心策略,优先使用大面额钞票,以求得最多可以支付的工资月数。示例中,约翰最多能支付111个月的工资。

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

洛谷【p2619】奶牛工资

题目描述

贝西工作勤勤恳恳,她每月向约翰索要C 元钱作为工资。约翰手上有不少钱,他一共有N 种面额的钞票。第i 种钞票的面额记作Vi,约翰有Ki 张。钞票的面额设定是比较合理的,保证所有大面额的钞票都是所有小面额钞票的整数倍。假设约翰每个月给贝西发一次工资,那么这些钱够发几个月的工资呢?贝西不会找零,如果约翰发的钱大于C 元,多余的部分就算是贝西的奖励了。

输入输出格式

输入格式:
第一行:两个整数N 和C,1 ≤ N ≤ 20, 1 ≤ C ≤ 109

第二行到第N + 1 行:第i + 1 行有两个整数Vi 和Ki,1 ≤ Vi ≤ 109; 1 ≤ Ki ≤ 106

输出格式:
单个整数:表示约翰最多能给贝西发几个月的工资

输入输出样例

输入样例#1:
3 6
10 1
1 100
5 120
输出样例#1:
111
说明

第一个月先给一张十元的,接下来十个月每个月都给两张五元的,最后一百个月每月给一张一元的和一张五元的。

思路:考虑到所有钞票面值都是倍数关系,所以根据贪心策略,先把面值大于C的钞票花出去,不会使答案更差。对于面值小于C的钞票,先用较大面值的钞票凑,若最后超过了C,尽量选择小面值的钞票。

题解:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值