目录

  • 题目描述
  • 输入格式
  • 输出格式
  • 样例输入
  • 样例输出

题目描述

有 n 本书,第 i 本书的价格为 ai,小爱想把这些书全部买回家。现在正有一个买二送一的促销活动,即,凡是顾客购买两本书,就可以免费带走第三本书,只要免费书的价格不超过两本付费书各自的价格即可。

请问,小爱最少需要花多少钱,才能将 n 本书全部买回家?

输入格式

第一行:单个正整数表示 n;
第二行:n 个正整数表示 a1,a2,…,an。

输出格式

单个正整数:表示将所有书买下的最小价格之和。

样例输入

6
1 3 2 4 5 6

样例输出

16

标签:模拟

解题思路:

把数据从大到小排列,每次取3个,求前两个和,然后结果为累加和

WA代码:

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
long long sum;
int main(){vector<int> v;int n,a;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&a);v.push_back(a);}sort(v.begin(),v.end());if(v.size()>=3){while(v.size()>=3){sum += v[1]+v[2];if(v.size()>=3)v.erase(v.begin(),v.begin()+3);}}for(vector<int>::iterator it=v.begin();it!=v.end();it++){sum += *it;}printf("%lld",sum);return 0;
}

AC代码:

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
long long sum;
bool cmp(int a,int b){return a>b;
}
int main(){vector<int> v;int n,a;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&a);v.push_back(a);}sort(v.begin(),v.end(),cmp);if(v.size()>=3){while(v.size()>=3){sum += v[0]+v[1];if(v.size()>=3)v.erase(v.begin(),v.begin()+3);}}for(vector<int>::iterator it=v.begin();it!=v.end();it++){sum += *it;}printf("%lld",sum);return 0;
}

心得:感觉和贪心有关系,还没学,直觉告诉我得先排序,一开始试了从小到大排列有样例没过,相反就AC了,有点迷惑,至于原理还有更好的方法欢迎交流

【UPCOJ】21185问题 H: 买二送一相关推荐

  1. A商品69元,买二送一;即买3个商品,付2件钱,小于3件时,按原价购买。

    问题: A商品69元,买二送一:即买3个商品,付2件钱,小于3件时,按原价购买. B商品88元,大于等于5件时,价格为80元: C商品128元,大于等于3件时,价格100元: 同时购买三个商品时,优惠 ...

  2. 买二送一跟买三免一有区别吗?

    买二送一跟买三免一有区别吗? 做个选择题,给你五百块,让你做个选择A拿五百块走人B赌一把,赢了,给你一千,输了一分不剩.你选择哪个? 再做另一个选择,给你一千块,做两个选择A你退500块给我拿着500 ...

  3. 上海市计算机学会-买二送一

    上海市计算机学会竞赛平台 | YACS 题目描述 有n 本书,第 i本书的价格为 ai​,小爱想把这些书全部买回家.现在正有一个买二送一的促销活动,即,凡是购买两本书,就可以免费带走第三本书,只要免费 ...

  4. ReleaseDC、DeleteDC(买二送一DeleteObject)简单解析

    今天在用MFC写一个数据 挖掘的程序时,有一部分要显示出数据的动态变化,于是调用了pDC,当在DeleteDC的时候报错了,错误 为:winhand.cpp line:128,在网上找了找解决方案,说 ...

  5. 第十一讲 项目3 买五赠一 买二十赠五 优惠计算

    任务和代码 /* *Copyright (c)2016,CSDN学院 | C语言及程序设计初步 *All rights reserved. *文件名称:p11-2.c *作 者:管运煌 *完成日期:2 ...

  6. 银行卡大小的充电宝,买就送耳机!

    每个人的朋友圈和微博上 似乎都有那么几个活得让人羡慕的朋友 他们的生活 看起来不仅精致,还很丰富多彩 从早上第一刻就开始了 ↓ 出门旅游 新一天的穿搭 逆天朋友团 咖啡馆到书店 逼格十足的日料 夜景太 ...

  7. SAP SD买十送一的业务处理与系统实现

    买十送一的业务处理与系统实现 在实际业务中我们总是会遇到买电冰箱送电饭锅的事情,对于企业也不例外.也会碰到买十个材料送一个材料的事情,当然这不是天上掉下馅饼,而是真切的业务.对于销售方来讲赠品在税务账 ...

  8. SAP License:买十送一的业务处理与系统实现

    买十送一的业务处理与系统实现 在实际业务中我们总是会遇到买电冰箱送电饭锅的事情,对于企业也不例外.也会碰到买十个材料送一个材料的事情,当然这不是天上掉下馅饼,而是真切的业务.对于销售方来讲赠品在税务* ...

  9. 生活中的数学:买几送几

    与打折问题常常同时出现的还有"买几送几"的问题,每每遇到"买几送几"的问题,总会有十几个学生出错. 例如:开学初,学校打算买630枝钢笔发给学生,这种钢笔的统一 ...

最新文章

  1. NEO智能合约反编译工具
  2. vue获取dom元素注意问题
  3. layaAir引擎制作游戏的图集动画、时间轴动画、和骨骼动画总结二
  4. 【Docker】 安装 nexus3
  5. 购物车数据结构及本地存储技术
  6. 成像数据更好的展示_为什么更多的数据并不总是更好
  7. 数据结构探险——图篇
  8. 2.4 shell 脚本基础
  9. JS中Promise函数then的奥秘探究
  10. 无人车是怎样一步步学会开车的? | 自动驾驶科普
  11. leetcode944
  12. [多线程系列]多线程之java线程池架构分析
  13. 太牛了,值得收藏!7000字22张图,精讲 Redis 知识!
  14. Oracle数据库常用的管理工具介绍
  15. InfluxDB在Win10安装与简单入门
  16. 光栅图形学(一)——直线段的扫描转换算法
  17. 建文高考成绩查询2021,2021届新高考语文强化模拟卷(三).pdf
  18. 成功解决百度网盘下载文件时遇到 下载总进度一直处于99.9%,显示一直下载不下来的问题
  19. 【Unity性能优化】静态资源优化——Audio优化
  20. 移动端flexible解决ipad和ipad Pro不适配

热门文章

  1. (GIS可视化)热点分析原理及实现
  2. 有效沟通技巧慕课答案
  3. PyQt(Python+Qt)入门:Designer组件属性编辑界面中QWidget类相关属性详解
  4. Fiddler配合夜神模拟器进行抓包
  5. android studio 闪电编译,Android Studio中Instant Run
  6. DB9公母头引脚定义以及连接
  7. 一个简单的点对点文件传输程序
  8. 刚刚,一页马克思手稿在阿里拍卖上拍到了290万
  9. 20189220 余超《Linux内核原理与分析》第七周作业
  10. 虚拟存储器与虚拟内存