购买巧克力

时间限制: 1 Sec 内存限制: 128 MB
[提交] [状态]
题目描述
SHOI这次科技竞赛取得了好成绩,想庆祝一番,他手头总共有M元,购买巧克力来让同学分享快乐。他在SH商店逸择购买,在巧克力商品柜中共有N块巧克力,每块巧克力的价格是a[i]元.商家为了促销,提供给他K张优惠券,使用方法是:对于每块巧克力,如果使用一张优惠券,则可以以b[i]的优惠价格购买.注意每块巧克力只能使用一张优惠券,只能购买一次。
SHOI想知道自己最多可以购买多少块巧克力?
输入
第一行三个整数N,K,M(0≤K≤N≤100000,M≤1014)。接下来N行,每行两个整数,表示a[i]和bi。
输出
一个整数表示最多购买巧克力数。
样例输入 Copy
4 1 7
3 2
2 2
8 1
4 3
样例输出 Copy
3
提示
样例解释:选择第1、2、3块巧克力,其中第三块使用优惠券,总共5元。

对于20%的数据N≤10。
对于50%的数据:N≤100
对于100%的数据:N≤100000

又被贪心搞了,wa7次

思路:
很简单的思路,先把所有的优惠券都用完,要想要花钱最少并且数量最多的话,就按照b排序。
然后再从剩下的商品里看最多能买多少,这时候就需要按照a排序了。
要注意一个商品只能用一次,所以要再加个标记。
菜的真实

#include<bits/stdc++.h>using namespace std;typedef long long ll;inline ll read()
{ll x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}const int maxn=1e6+7;
ll n,k,m;
struct node{ll a,b;ll flag;///记录是否被用过
};
node a[maxn];bool cmp1(node a,node b){return a.b<b.b;
}bool cmp2(node a,node b){if(a.flag==b.flag) return a.a<b.a;return a.flag<b.flag;
}int main(){n=read();k=read();m=read();for(int i=1;i<=n;i++){a[i].a=read();a[i].b=read();}sort(a+1,a+1+n,cmp1);int res=0;for(int i=1;i<=k;i++){if(a[i].b<=m){m-=a[i].b;a[i].flag=1;res++;}}if(m<=0){cout<<res<<endl;return 0;}sort(a+1,a+1+n,cmp2);for(int i=1;i<=n;i++)if(!a[i].flag){if(a[i].a<=m){m-=a[i].a;res++;}if(m<=0){cout<<res<<endl;return 0;}}cout<<res<<endl;return 0;
}

UPC-购买巧克力(贪心)相关推荐

  1. 洛谷 P2983 [USACO10FEB]购买巧克力Chocolate Buying

    购买巧克力Chocolate Buying 乍一看以为是背包,然后交了一个感觉没错的背包上去. #include <iostream> #include <cstdio> #i ...

  2. 2017上海金马五校 购买装备 贪心+二分Check

    购买装备 发布时间: 2017年7月9日 18:17   最后更新: 2017年7月9日 21:05   时间限制: 1000ms   内存限制: 128M 描述 最近盛大的一款游戏传奇世界极其火爆. ...

  3. 减脂期这样购买巧克力,保准躺着瘦

    黑巧克力非常健康和营养,然而可选择的品牌实在是五花八门.根据成分和加工方法,有些比其他更好.那么你应该选择哪一个呢? 什么是黑巧克力? 黑巧克力是通过在可可中添加脂肪和糖来生产的.它与牛奶巧克力的不同 ...

  4. 洛谷—— P2983 [USACO10FEB]购买巧克力Chocolate Buying

    https://www.luogu.org/problem/show?pid=2983 题目描述 Bessie and the herd love chocolate so Farmer John i ...

  5. 7-5 好吃的巧克力

    超市正在特价售卖巧克力,正好被贪吃的Lucky_dog看见了. 巧克力从左到右排成一排,一共有N个,M种. 超市有一个很奇怪的规定,就是你在购买巧克力时必须提供两个数字a和b,代表你要购买第 a 个至 ...

  6. [背包DP] 洛谷相关题目整理与练习(74题-)

    题目 以背包为标签,搜出了这么多题,按难度排序,一道一道做: (*):下面有提到 TODO 题目 难度 备忘录 AC 采药 普及- 01背包模板 AC 开心的金明 普及- 01背包模板 AC 小A点菜 ...

  7. 2017-2018年度刷题记录

    2018暑假刷题1: T1.CF6A Triangle (#模拟 -1.4) T2.CF59A Word(#模拟 -1.5) T3.[洛谷]P2772 寻找平面上的极大点(#贪心 -1.4) T4.[ ...

  8. 不受微软待见的Python,如何在八年内逆袭成功?

    AI 前线导读:Python 是微软未来云计算的一个重要组成部分,是服务和团队需要支持的语言之一,也是微软公司内外快速增长的数据科学和分析领域最受欢迎的语言.但一直以来,Python 在微软似乎从来没 ...

  9. 奇怪的顾客(C++)

    描述 一家商店的巧克力分为两类包装: 1.散装:一个一个的; 2.盒装:a个巧克力为一盒. 一位顾客购买巧克力时有个奇怪的规矩(假设他需要买x个): 如果x%a>=a/2他就决定全买成盒装,不会 ...

最新文章

  1. Ambari在离线环境中安装Hadoop集群
  2. python函数小练习
  3. elasticsearch之查询扩展
  4. du,df,fdisk,mkfs.ext3命令详解
  5. 扫地机器人欠压检测电路_扫地机器人智能家居必备!靠传感器感知外界环境?...
  6. WebSocket实现实时通信
  7. doc转docx文件会乱吗_【转】帮你解决docx转换为doc文档的乱码问题
  8. 0 post 报红_【报Bug】升级2.3.0.20190919 后,原正常的request post 全部报 Status Code: 415 Unsupported Media Type...
  9. MySQL8数据恢复
  10. win10系统如何开启休眠模式?
  11. 站在22岁的边上--我的2007
  12. 软件配置管理岗位职责说明
  13. JavaWeb09_Cookie Session
  14. 蚌埠市哪有学计算机编程的,蚌埠小孩学习编程
  15. 项目进度表:可应用于各行业中的项目进度管控
  16. Vi编辑器的常用命令1(文件内操作)
  17. 脉冲星 1 月脉动 | Pulsar 2.5.0 和 Pulsarctl 0.3.0 发布,多项活动期待您的参与
  18. 高效人士必备的高效工具与原则
  19. (附源码)python音乐电台推荐系统的设计与实现 毕业设计 301210
  20. 童小军:用户是大数据的本质驱动力

热门文章

  1. 全球图片博客五佳简介
  2. 拍出天价,乔布斯1973年求职申请表曝光
  3. 宁德计算机初级职称,关于对2019年度新闻专业中、初级职称评审结果进行公示的公告...
  4. 2023年9月数学建模:为什么发射卫星使用三级火箭?
  5. 常用数据集网盘免费下载(转载)
  6. 论文写作课程学习总结
  7. 晚上睡不好怎么办?快速入睡5个小妙招
  8. Eureka源码10-Server端(处理全量下载和增量下载请求)
  9. python0到7能组成的奇数个数_Python实践|输出0-7组成八位奇数总数
  10. 深度阅读:阿杜威少快意江湖 昆汀式的刀光剑影