[COCI2014-2015#7] TETA
题目传送门
思路
题目大意就是说你现在要买一些食品,如果你现在买的食品是套餐中的,且单买价比套餐价要高,那就会把买单个改为买套餐,求买食品需要花费多少钱。
很简单,直接根据规则进行模拟即可。
首先我们先把要买的东西的食品编号用桶的思想储存起来,假设编号为 xxx,我们定义以为数组 buyibuy_ibuyi 表示在要买的食品中,食品编号为iii的食品要买多少个。
然后我们不看别的,只看套餐里的东西。 先一直循环,然后枚举套餐里的食品编号,接着一份一份的来看。 假设现在枚举到了套餐里的第 iii 个物品。如果 buypi=0buy_{p_i}=0buypi=0 即要买东西中没有 pip_ipi 则此时什么也不用做。如果 buypi>0buy_{p_i}>0buypi>0 即要买的东西中有 pip_ipi 则我们先定义一个变量 tottottot 来记录套餐和要买的东西中单买一份的总价格。 则此时 tot←tot+cpitot \gets tot+c_{p_i}tot←tot+cpi。 最后,如果 tot>xtot>xtot>x 即单买价格超过了套餐价格,设最终答案为 ansansans 则此时 ans←ans+xans\gets ans+xans←ans+x。并且将单买中选过的食品 iii 的 buyi←buyi−1buy_i\gets buy_i-1buyi←buyi−1。 如果 x≥totx \ge totx≥tot 则什么也不用做,直接跳出循环。
考虑完套餐之后,接下来就只剩单买了,将剩下的要买的东西全部按照单买价进行购买即可。
最后直接输出 ansansans 即可。
代码
#include<iostream>
using namespace std;
int k,c[25];
int x,p[5];
int t,s[25];
int buy[25];
int ans;
int main()
{//输入cin>>k;for(int i=1;i<=k;++i){cin>>c[i];}cin>>x>>p[1]>>p[2]>>p[3]>>p[4];cin>>t;for(int i=1;i<=t;++i){cin>>s[i];buy[s[i]]++;//桶}//处理套餐中要买的东西while(1){int tot=0;for(int i=1;i<=4;++i){tot+=min(buy[p[i]],1)*c[p[i]];}if(tot>x){for(int i=1;i<=4;++i){buy[p[i]]=max(buy[p[i]]-1,0);}ans+=x;}else{break;}}//剩下的东西进行单买for(int i=1;i<=k;++i){ans+=buy[i]*c[i];}//输出cout<<ans<<endl;return 防抄袭;
}
[COCI2014-2015#7] TETA相关推荐
- COCI2014/2015 Contest#1 PIRAMIDA 优化空间
src 给1e6长的字符串,构造一个连续排列的金字塔,类似蛇形地放入.求第ai行字符ci有几个.ai有1e18,但询问k只有1e5. 对单个询问,容易想到求前后缀.因为第ai行之前的长度,能用求和公式 ...
- 龙岩学院计算机二级报名时间,福建龙岩学院2015年12月计算机等级考试报名通知...
福建龙岩学院2015年12月计算机等级考试报名通知 各学院: 根据上级有关文件通知,2015年12月福建省高校学生计算机应用水平等级考试开始报名,现将有关事项通知如下: 一.考试内容: 本次一.二考试 ...
- 浙江大学通信与计算机网络,新浙大2015年通信与计算机网络离线作业.doc
新浙大2015年通信与计算机网络离线作业 浙江大学远程教育学院 <通讯与计算机网络>课程作业 姓名:学 号:年级:14年春学习中心:温州学习中心 从资源共享的角度来定义计算机网络,计算机网 ...
- 计算机一级考试模拟题函数,2015年计算机一级考试模拟题(四)
2015年计算机一级考试模拟题(四) 请用Word 2003对考生文件夹下WORD.DOC文档中的文字进行编辑.排版和保存,具体要求如下: (1)将标题段("十年后的家电")文字设 ...
- CV算法复现(分类算法5/6):ResNet(2015年 微软亚洲研究院)
致谢:霹雳吧啦Wz:https://space.bilibili.com/18161609 目录 致谢:霹雳吧啦Wz:https://space.bilibili.com/18161609 1 本次要 ...
- mysql如何下载连接到visual_Visual Studio 2015 Community连接到Mysql
Visual Studio 2015 Community连接到MySQL,步骤很简单,但刚弄的时候一脸懵,现在记录如下以作备忘: 安装好VS2015和Mysql后,只需要再安装两个东西即可. 一个是S ...
- 微软批量授权版WINDOWS 10资料(截至到2015年11月,此处无下载地址)
微软批量授权版WINDOWS 10资料: 1.专业版: Windows 10 专业版(2015 年 7 月发布) WINDOWS 10专业版简体中文,32位/64位 SW_DVD5_Win_Pro_1 ...
- Enda 的 2015 下半年读书计划
2015下半年的读书计划 php 方面 <PHP设计模式> <PHP核心技术与最佳实践> <learning php设计模式> <深入php> Mysq ...
- 计算机考试批处理试题,2015计算机三级考试pc技术模拟试题及答案(八)
2015计算机三级考试pc技术模拟试题及答案(八) 1.关于Windows 98中的网上邻居的相关叙,( )是错误的. A.通过网上邻居可以游览和使用网上的全部计算机资源 B.通过网上邻居可以浏览网上 ...
- InstallShield 2015 LimitedEdition VS2012 运行bat文件
转载:http://www.cnblogs.com/fengwenit/p/4271150.html 运行bat文件 网上很多介绍如何运行bat的方法,但我这个是limted 版本,不适用. 1. ...
最新文章
- python walk 遍历文件夹 文件大小
- 用 Java 对 hbase 进行CRUD增删改查操作
- C++友元函数和友元类(二)
- Hibernate入门(IDEA下自动生成映射文件及实体类)
- 深入理解计算机底层为什么采用补码运算【如何理解二进制计算高位溢出】
- OpenCV学习笔记(五十四)——概述FaceRecognizer人脸识别类contrib
- Guava入门~Objects
- [CB]将窗体从属于主窗体
- [SAP2000] 简单桁架受力求解过程
- jvm原理、启动时间、与编译器操作系统关系
- 编程零基础应当如何开始学习 Python?
- cesium 百度地图_Cesium专栏-热力图(附源码下载)
- 翻译:道路机动车辆驾驶自动化系统相关术语的分类和定义 J3016_202104
- 植物大战僵尸的闯关关数以及金钱修改
- win10系统云服务器配置,win10系统云服务器配置
- 淘宝API 添加上传商品图片
- TODO注解及其他类似注解说明
- MySQL数据库--韩顺平老师课
- foxmail远程主机强迫关闭了一个现有的连接
- 前后端分离项目,vue+uni-app+php+mysql外卖点餐小程序系统 开题报告