CometOJ C0259 [USACO]混合牛奶(1 ms)

一、题目描述

二、算法分析说明
将所有农民的牛奶价格和牛奶数量放入一个对或做成结构体,然后快排,先按价格从低到高排序,价格相同则按拥有牛奶的数量从高到低排序。从排最前的开始选,买完该农民的全部牛奶之后就买下一农民的牛奶,一直到数量不少于 n 。
这份代码会模拟:在已购买牛奶的数量 t 达到 n 之前一律买下已访问到的农民的全部牛奶。循环跳出以后,再将多余的牛奶数量减回去。但是有一组数据是 n = 0 。当 n > 0 时,访问到的农民的编号 i 会先继续 +1 才结束循环,所以扣除多算的牛奶数量时要先 --i 才能正确扣除多出的牛奶的相应价格。如果 n = 0 ,这里会出现 Runtime Error 。所以要补充判断
if (i != 0)
本代码中 t 代表已经购入的牛奶的总数量。

三、AC 代码(1 ms)

#include<cstdio>
#include<map>
#include<algorithm>
#pragma warning(disable:4996)
using namespace std;
pair<unsigned,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值