Description

在商场中,有m种的折扣,当你买的东西到qi个的时候,可以使用该种类型的折扣,对要买的东西进行免费,东西可以免费最至多2个
免费的条件是,你所选择进行免费的东西,不能超过已经在购物车的中最便宜的商品
问买所有的物品,使用这些打折规则,使得付的钱最少。

Solution

读题可发现:

  • 每种优惠类型可以使用无数次 => 明示贪心(每次都用要求最少的那种)
  • 所选择进行免费的东西,不能超过已经在购物车的中最便宜的商品(狡猾 精明的商人)=> 所以最好就是从大到小依次买,能优惠时直接跳两个
    (我不知道怎么脑子抽风了,想到从大到小的顺序以后还在顺序做…浪费了半个多小时)

代码如下:

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <cmath>
#include <queue>
#include <map>
#include <set>
#define il inline
#define re register
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 10;
int n, q;
int discount[maxn], a[maxn];
ll ans = 0;
il bool cmp(int x, int y) {return x > y;
}
int main() {scanf("%d", &q);for(re int i = 1; i <= q; ++i) scanf("%d", &discount[i]);sort(discount+1, discount+q+1);scanf("%d", &n);for(re int i = 1; i <= n; ++i)scanf("%d", &a[i]);sort(a+1, a+n+1, cmp);int cnt = 0, tmp = discount[1];for(re int i = 1; i <= n; ++i) {if(cnt == tmp) {cnt = 0;i += 2;}cnt++;ans += a[i];}printf("%lld\n", ans);return 0;
}

CF261A Maxim and Discounts -- 贪心相关推荐

  1. Maxim and Discounts(贪心)

    Maxim and Discounts 描述 Maxim always goes to the supermarket on Sundays. Today the supermarket has a ...

  2. Codeforces 161 B. Discounts (贪心)

    题目链接:http://codeforces.com/contest/161/problem/B 题意: 有n个商品和k辆购物车,给出每个商品的价钱c和类别t(1表示凳子,2表示铅笔),如果一辆购物车 ...

  3. 2016区域赛前冲刺训练

    UPD 2016.10.23 shift-and (2题) Codeforces 训练 现在已经完成了: 191 [Codeforces Round #377] (6/6) Div 2 A Buy a ...

  4. CF - 779C. Dishonest Sellers 排序+贪心

    1.题目描述: C. Dishonest Sellers time limit per test 2 seconds memory limit per test 256 megabytes input ...

  5. 算法设计与分析第3章 贪心算法

    第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...

  6. 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...

    问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...

  7. Too Many Segments CF595D 贪心乱搞

    传送门! 比赛的时候没有时间写了,看看了看大佬的代码,学习学习. 一开始实验室大佬说是用差分写的,但是看了代码发现打cf的人大家都是stl狂魔! 贪心思路:区间按照左端点排序,从1~2e5遍历每一个点 ...

  8. Roundgod and Milk Tea 贪心

    这个题好像可以用一种类似与置换的贪心方法来做~ sum记为剩余奶茶,一开始sum等于奶茶和 ans记录已经喝的奶茶数 不用排序,我们就从前往后直接处理,考虑的是每一个班最多可以喝多少杯奶茶 就是从剩余 ...

  9. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

最新文章

  1. SQL Server 2012中的ColumnStore Index尝试
  2. 快速学习Android开发知识点总结(磨砺营马剑威Android)
  3. Redhat7 samba配置(部分)
  4. 瑞数(裁判文书)js的加密分析
  5. bigdecimal 保留两位小数_openpyxl修改单元格格式(隐藏小数、设定百分数位数)...
  6. python保存rtmp流_ffmpeg 推送、保存rtmp 流命令
  7. python进阶15变量作用域LEGB
  8. Self Host WebApi服务传输层SSL加密(服务器端+客户端调用)
  9. pdf论文中查看使用的字体
  10. 如何免费下载付费音乐
  11. 景联文科技提供步态数据采集服务、提供21000个id步态视频训练数据集
  12. python图形编程复选按钮和单选按钮详细说明_python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例...
  13. 北信源桌面终端管理系统部署与问题
  14. C/C++计算字符串的长度
  15. 测试用例的设计-面试常见问题(基础篇)
  16. 最强神作 Crysis深度剖析与优化指南
  17. 直角三角形面积Java_利用Eclipse编写第一个简单的Java程序,实现如下功能。 键盘输入:直角三角形两直角边a, b,根据勾股定理计算斜边的平方值。并输出。 例如:运行效果如下...
  18. ftp上传老是失败 [L] TYPE A [L] 200 Type set to A. [L] MODE Z [L] 200 MODE Z ok. [L] PASV [L] 550 Pa
  19. 计算机刚开始学什么时候,新手如何开始学电脑 新手学电脑从何入门
  20. Effective C++ 条款43

热门文章

  1. 把 SpringBoot 的banner换成了美女,被发现了,老板说工作不饱和,快救救我
  2. springboot 有限状态机入门指南
  3. 总线周期与时钟周期的区别与联系
  4. CF1638E. Colorful Operations 珂朵莉树+差分树状数组
  5. 【计算机系统结构】Self-modifying code 自修改代码
  6. 什么是共享经济?共享购模式是什么?
  7. 工程经济学 6 价值工程
  8. 达观数据推荐算法实现:协同过滤之item embedding
  9. JAVA 串口通信 并口通信
  10. 男女关系的30种经典比喻