codevs 1052:地鼠游戏
http://codevs.cn/problem/1052/
题目描述 Description
王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不但学习刻苦,而且善于经常总结、完善自己的学习方法,所以他总能在每次考试中得到优异的分数,这一切很大程度上是由于他是一个追求效率的人。
但王钢也是一个喜欢玩的人,平时在学校学习他努力克制自己玩,可在星期天他却会抽一定的时间让自己玩一下,他的爸爸妈妈也比较信任他的学习能力和学习习惯,所以在星期天也不会象其他家长一样对他抓紧,而是允许他在星期天上午可以自由支配时间。
地鼠游戏是一项需要反应速度和敏捷判断力的游戏。游戏开始时,会在地板上一下子冒出很多地鼠来,然后等你用榔头去敲击这些地鼠,每个地鼠被敲击后,将会增加相应的游戏分值。问题是这些地鼠不会傻傻地等你去敲击,它总会在冒出一会时间后又钻到地板下面去(而且再也不上来),每个地鼠冒出后停留的时间可能是不同的,而且每个地鼠被敲击后增加的游戏分值也可能是不同,为了胜出,游戏参与者就必须根据每个地鼠的特性,有选择地尽快敲击一些地鼠,使得总的得分最大。
这个极具挑战性的游戏王钢特别喜欢,最近他经常在星期天上午玩这个游戏,慢慢地他不但敲击速度越来越快(敲击每个地鼠所需要的耗时是1秒),而且他还发现了游戏的一些特征,那就是每次游戏重新开始后,某个地鼠冒出来后停留的时间都是固定的,而且他记录了每个地鼠被敲击后将会增加的分值。于是,他在每次游戏开始后总能有次序地选择敲击不同的地鼠,保证每次得到最大的总分值。
输入描述 Input Description
输入包含3行,第一行包含一个整数n(1<=n<=100)表示有n个地鼠从地上冒出来,第二行n个用空格分隔的整数表示每个地鼠冒出后停留的时间,第三行n个用空格分隔的整数表示每个地鼠被敲击后会增加的分值(<=100)。每行中第i个数都表示第i个地鼠的信息。
输出描述 Output Description
输出只有一行一个整数,表示王钢所能获得的最大游戏总分值。
样例输入 Sample Input
5
5 3 6 1 4
7 9 2 1 5
样例输出 Sample Output
24
芒果君:这是一道用优先队列(堆)优化的贪心题。由于停留时间更长的地鼠更容易被选择,将时间选为关键字由大到小排序,开始贪心:将停留时间等于当前时间的地鼠的分数放入优先队列,如果队列不为空,就累计分数、弹出元素。最后输出总分数。
1 #include<cstdio> 2 #include<algorithm> 3 #include<queue> 4 using namespace std; 5 priority_queue<int>heat; 6 int n,i,T,k,ans; 7 struct X{ 8 int t,s; 9 }a[110]; 10 bool cmp(X a,X b) 11 { 12 return a.t>b.t; 13 } 14 int main() 15 { 16 scanf("%d",&n); 17 for(i=1;i<=n;++i) 18 { 19 scanf("%d",&a[i].t); 20 } 21 for(i=1;i<=n;++i) 22 { 23 scanf("%d",&a[i].s); 24 } 25 sort(a+1,a+n+1,cmp); 26 T=a[1].t,k=1; 27 while(T) 28 { 29 while(a[k].t==T) 30 { 31 heat.push(a[k].s); 32 k++; 33 } 34 if(!heat.empty()) 35 { 36 ans+=heat.top(); 37 heat.pop(); 38 } 39 T--; 40 } 41 printf("%d",ans); 42 return 0; 43 }
转载于:https://www.cnblogs.com/12mango/p/6891000.html
codevs 1052:地鼠游戏相关推荐
- codevs 1052 地鼠游戏
1052 地鼠游戏 http://codevs.cn/problem/1052/ 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他 ...
- codevs地鼠游戏(贪心)
1052 地鼠游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能 ...
- 【codevs1052】地鼠游戏,标签不都是对的
1052 地鼠游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能 ...
- [codevs 1033] 蚯蚓的游戏问题
[codevs 1033] 蚯蚓的游戏问题 题解: 首先每个点只能走一次,所以要靠拆点 (X -> Xi, Xj) 来限制每个点走的次数,容量为1,费用为食物量的相反数. 从源点向所有第一层的点 ...
- android地鼠游戏,非常地鼠手游
非常地鼠,极端考验手速与眼力的砸地鼠游戏,游戏中玩家需要准确判断地鼠的落地位置,按照自身的规划掌握地鼠的出现规律,在地鼠出现的瞬间将其砸中,游戏玩法趣味性极强,感兴趣的玩家可以下载体验! 非常地鼠官方 ...
- 前端搭建砸地鼠游戏(内附源码)
The sand accumulates to form a pagoda ✨ 写在前面 ✨ 功能介绍 ✨ 页面搭建 ✨ 样式设置 ✨ 逻辑部分 ✨ 完整代码 ✨ 写在前面 上周我们实通过前端基础实现 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(八):为动画建立属性列表
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- WEB期末大作业 痒痒鼠游戏系统
目录 开发环境 文件目录 数据库 网页展示 项目说明书 详细功能说明 设计环境 数据库设计 使用的前端框架 JSP页面的说明 心得体会 github指路 拖了好久终于想起来把WEB的期末作业传上来,系 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(九):创建动画
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
最新文章
- IROS 2020 | 跨视角语义分割前沿进展
- 测试优惠券要怎么写测试用例?
- Slackware硬盘安装方法
- gitlab合并分支_GitLab-参考问题
- 问题 D: 最小生成树II
- 认清当下的努力,可能毫无意义
- 【Unity新闻】Unity发布白皮书《11种有效的玩家参与策略》
- 《Algorithms》Java 语言特性
- mysql 日期计算,今天,明天,本周,下周,本月,下月
- 计算机1级题库软件,计算机一级软件哪个好_计算机一级刷题软件_计算机一级试题软件...
- Apache Tomcat 安装配置图文详细教程
- MFC API——》ModifyStyle
- 【深度学习框架】-Caffe(入门级学习一:简单介绍)
- 手机浏览器 打开 APP,APP 嵌套在了浏览器里,网页跳转app问题
- whisper客服源码_whisper客服系统兼容HTTPS方案
- 【杂谈】从零开始组建团队开发一款APP的人力成本以及时间成本解析
- 描写油菜花的好句好段
- 学习Less-看这篇就够了
- Nginx 访问加密
- vr全景系统平台哪家好, vr全景是什么?
热门文章
- imread函数 matlab_【MATLAB图像处理学习】1.读取和显示图片
- 嵩天python爬虫_我自己爬-python爬虫快速入门(一)
- [已解决]user is not in the sudoers file. This incident will be reported.(简单不容易出错的方式)
- python counter模块_python collections模块 计数器(counter)
- LeetCode 159. 至多包含两个不同字符的最长子串(滑动窗口)
- LintCode 1753. 写作业(二分查找)
- 剑指Offer - 面试题10- I. 斐波那契数列
- LeetCode 67. 二进制求和
- 数据结构--单链表single linked list数据结构C++实现
- python第k序元素查找列表_【Python】第8次练习:列表——程序填空题 -合并队列、列表元素零的移动、列表逆序输出、第K序元素查找...