【UPCOJ】21185问题 H: 买二送一
目录
- 题目描述
- 输入格式
- 输出格式
- 样例输入
- 样例输出
题目描述
有 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: 买二送一相关推荐
- A商品69元,买二送一;即买3个商品,付2件钱,小于3件时,按原价购买。
问题: A商品69元,买二送一:即买3个商品,付2件钱,小于3件时,按原价购买. B商品88元,大于等于5件时,价格为80元: C商品128元,大于等于3件时,价格100元: 同时购买三个商品时,优惠 ...
- 买二送一跟买三免一有区别吗?
买二送一跟买三免一有区别吗? 做个选择题,给你五百块,让你做个选择A拿五百块走人B赌一把,赢了,给你一千,输了一分不剩.你选择哪个? 再做另一个选择,给你一千块,做两个选择A你退500块给我拿着500 ...
- 上海市计算机学会-买二送一
上海市计算机学会竞赛平台 | YACS 题目描述 有n 本书,第 i本书的价格为 ai,小爱想把这些书全部买回家.现在正有一个买二送一的促销活动,即,凡是购买两本书,就可以免费带走第三本书,只要免费 ...
- ReleaseDC、DeleteDC(买二送一DeleteObject)简单解析
今天在用MFC写一个数据 挖掘的程序时,有一部分要显示出数据的动态变化,于是调用了pDC,当在DeleteDC的时候报错了,错误 为:winhand.cpp line:128,在网上找了找解决方案,说 ...
- 第十一讲 项目3 买五赠一 买二十赠五 优惠计算
任务和代码 /* *Copyright (c)2016,CSDN学院 | C语言及程序设计初步 *All rights reserved. *文件名称:p11-2.c *作 者:管运煌 *完成日期:2 ...
- 银行卡大小的充电宝,买就送耳机!
每个人的朋友圈和微博上 似乎都有那么几个活得让人羡慕的朋友 他们的生活 看起来不仅精致,还很丰富多彩 从早上第一刻就开始了 ↓ 出门旅游 新一天的穿搭 逆天朋友团 咖啡馆到书店 逼格十足的日料 夜景太 ...
- SAP SD买十送一的业务处理与系统实现
买十送一的业务处理与系统实现 在实际业务中我们总是会遇到买电冰箱送电饭锅的事情,对于企业也不例外.也会碰到买十个材料送一个材料的事情,当然这不是天上掉下馅饼,而是真切的业务.对于销售方来讲赠品在税务账 ...
- SAP License:买十送一的业务处理与系统实现
买十送一的业务处理与系统实现 在实际业务中我们总是会遇到买电冰箱送电饭锅的事情,对于企业也不例外.也会碰到买十个材料送一个材料的事情,当然这不是天上掉下馅饼,而是真切的业务.对于销售方来讲赠品在税务* ...
- 生活中的数学:买几送几
与打折问题常常同时出现的还有"买几送几"的问题,每每遇到"买几送几"的问题,总会有十几个学生出错. 例如:开学初,学校打算买630枝钢笔发给学生,这种钢笔的统一 ...
最新文章
- NEO智能合约反编译工具
- vue获取dom元素注意问题
- layaAir引擎制作游戏的图集动画、时间轴动画、和骨骼动画总结二
- 【Docker】 安装 nexus3
- 购物车数据结构及本地存储技术
- 成像数据更好的展示_为什么更多的数据并不总是更好
- 数据结构探险——图篇
- 2.4 shell 脚本基础
- JS中Promise函数then的奥秘探究
- 无人车是怎样一步步学会开车的? | 自动驾驶科普
- leetcode944
- [多线程系列]多线程之java线程池架构分析
- 太牛了,值得收藏!7000字22张图,精讲 Redis 知识!
- Oracle数据库常用的管理工具介绍
- InfluxDB在Win10安装与简单入门
- 光栅图形学(一)——直线段的扫描转换算法
- 建文高考成绩查询2021,2021届新高考语文强化模拟卷(三).pdf
- 成功解决百度网盘下载文件时遇到 下载总进度一直处于99.9%,显示一直下载不下来的问题
- 【Unity性能优化】静态资源优化——Audio优化
- 移动端flexible解决ipad和ipad Pro不适配