UPC-购买巧克力(贪心)
购买巧克力
时间限制: 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-购买巧克力(贪心)相关推荐
- 洛谷 P2983 [USACO10FEB]购买巧克力Chocolate Buying
购买巧克力Chocolate Buying 乍一看以为是背包,然后交了一个感觉没错的背包上去. #include <iostream> #include <cstdio> #i ...
- 2017上海金马五校 购买装备 贪心+二分Check
购买装备 发布时间: 2017年7月9日 18:17 最后更新: 2017年7月9日 21:05 时间限制: 1000ms 内存限制: 128M 描述 最近盛大的一款游戏传奇世界极其火爆. ...
- 减脂期这样购买巧克力,保准躺着瘦
黑巧克力非常健康和营养,然而可选择的品牌实在是五花八门.根据成分和加工方法,有些比其他更好.那么你应该选择哪一个呢? 什么是黑巧克力? 黑巧克力是通过在可可中添加脂肪和糖来生产的.它与牛奶巧克力的不同 ...
- 洛谷—— P2983 [USACO10FEB]购买巧克力Chocolate Buying
https://www.luogu.org/problem/show?pid=2983 题目描述 Bessie and the herd love chocolate so Farmer John i ...
- 7-5 好吃的巧克力
超市正在特价售卖巧克力,正好被贪吃的Lucky_dog看见了. 巧克力从左到右排成一排,一共有N个,M种. 超市有一个很奇怪的规定,就是你在购买巧克力时必须提供两个数字a和b,代表你要购买第 a 个至 ...
- [背包DP] 洛谷相关题目整理与练习(74题-)
题目 以背包为标签,搜出了这么多题,按难度排序,一道一道做: (*):下面有提到 TODO 题目 难度 备忘录 AC 采药 普及- 01背包模板 AC 开心的金明 普及- 01背包模板 AC 小A点菜 ...
- 2017-2018年度刷题记录
2018暑假刷题1: T1.CF6A Triangle (#模拟 -1.4) T2.CF59A Word(#模拟 -1.5) T3.[洛谷]P2772 寻找平面上的极大点(#贪心 -1.4) T4.[ ...
- 不受微软待见的Python,如何在八年内逆袭成功?
AI 前线导读:Python 是微软未来云计算的一个重要组成部分,是服务和团队需要支持的语言之一,也是微软公司内外快速增长的数据科学和分析领域最受欢迎的语言.但一直以来,Python 在微软似乎从来没 ...
- 奇怪的顾客(C++)
描述 一家商店的巧克力分为两类包装: 1.散装:一个一个的; 2.盒装:a个巧克力为一盒. 一位顾客购买巧克力时有个奇怪的规矩(假设他需要买x个): 如果x%a>=a/2他就决定全买成盒装,不会 ...
最新文章
- Ambari在离线环境中安装Hadoop集群
- python函数小练习
- elasticsearch之查询扩展
- du,df,fdisk,mkfs.ext3命令详解
- 扫地机器人欠压检测电路_扫地机器人智能家居必备!靠传感器感知外界环境?...
- WebSocket实现实时通信
- doc转docx文件会乱吗_【转】帮你解决docx转换为doc文档的乱码问题
- 0 post 报红_【报Bug】升级2.3.0.20190919 后,原正常的request post 全部报 Status Code: 415 Unsupported Media Type...
- MySQL8数据恢复
- win10系统如何开启休眠模式?
- 站在22岁的边上--我的2007
- 软件配置管理岗位职责说明
- JavaWeb09_Cookie Session
- 蚌埠市哪有学计算机编程的,蚌埠小孩学习编程
- 项目进度表:可应用于各行业中的项目进度管控
- Vi编辑器的常用命令1(文件内操作)
- 脉冲星 1 月脉动 | Pulsar 2.5.0 和 Pulsarctl 0.3.0 发布,多项活动期待您的参与
- 高效人士必备的高效工具与原则
- (附源码)python音乐电台推荐系统的设计与实现 毕业设计 301210
- 童小军:用户是大数据的本质驱动力