code1052 地鼠游戏
贪心算法,从后往前
来自codevs的题解:
我的纠结思考过程:
如果每一秒都没有重复的地鼠出现 那么肯定是一个一个挨着打
如果有重复的地鼠 那么要考虑打那个更优 当然是选分值最大的
单纯这样想很合理 但是忽略了一种情况 分值小的地鼠早出现了 而后面重复的地鼠都比这个早出现的地鼠分值大
我们就不能去打这只小的 而是把时间去用在打后面重复的地鼠身上
如 1 2 2
5 6 7
那么按照地鼠的分值排序 然后挨着打怎么样
也不对 因为分值大的地鼠也有可能停留时间长 我们早打了他 会导致时间短的地鼠没法打 而时间还空着无视可做
如 2 1
9 5
后来看了题解才明白
把上述两种错误的思想结合起来就是把正解
我们倒着枚举时间打地鼠 这样就避免了第二种情况的错误
然后再从所有地鼠中选出能打的分值最大的 这样就避免了第一种情况的错误
设立一个大顶堆,堆中的元素是当前时间下能打的地鼠的分值
把地鼠们按照消失的时间由大到小排序,循环时间temp=最后消失的地鼠的消失时间 to 1
把所有消失时间等于temp的地鼠放入堆(表示可以打它们了)
然后取出最大的(堆顶)打掉,累加得分即可
代码如下:
#include<iostream>
#include<algorithm>
#include<queue>
#define Size 105
using namespace std; int n;
struct Mouse{
int t,w;
}mouse[Size];
priority_queue<int> q; bool cnt(Mouse m1,Mouse m2){return m1.t>m2.t;} int main(){
cin>>n;
for(int i=;i<=n;i++){
cin>>mouse[i].t;
}
for(int i=;i<=n;i++){
cin>>mouse[i].w;
} sort(mouse+,mouse+n+,cnt); int ans=;
for(int temp=mouse[].t,k=;temp>;temp--){
while(mouse[k].t==temp){
q.push(mouse[k].w);
k++;
}
if(!q.empty()){
ans+=q.top();
q.pop();
}
} cout<<ans<<endl; return ;
}
code1052 地鼠游戏的更多相关文章
- AC日记——地鼠游戏 codevs 1052
1052 地鼠游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 王钢是一名学习成绩优异的学生,在平 ...
- codevs 1052 地鼠游戏
1052 地鼠游戏 http://codevs.cn/problem/1052/ 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不 ...
- 贪心法 codevs 1052 地鼠游戏
1052 地鼠游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 王钢是一名学习成绩优异的学生,在平 ...
- Codevs No.1052 地鼠游戏
2016-05-31 18:22:32 题目链接: 地鼠游戏 Codevs No.1245 题目大意: 打地鼠,一开始所有地鼠都出现,但是维持的时间(s)和击中所得的积分各不同,求出采用最优策略(1s ...
- codevs 1052 地鼠游戏 优先队列
1052 地鼠游戏 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.codevs.cn/problem/1052/ Descriptio ...
- codevs1052 地鼠游戏
1052 地鼠游戏 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不但学习刻苦,而且善于经常总结.完善自己的学习方法,所以他总能在 ...
- codevs地鼠游戏(贪心)
1052 地鼠游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他 ...
- CODEVS——T1052 地鼠游戏
http://codevs.cn/problem/1052/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 D ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(十):创建游戏逻辑
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
随机推荐
- JVM内存管理之垃圾搜集器精解(让你在垃圾搜集器的世界里耍的游刃有余)
引言 在上一章我们已经探讨过hotspot上垃圾搜集器的实现,一共有六种实现六种组合.本次LZ与各位一起探讨下这六种搜集器各自的威力以及组合的威力如何. 为了方便各位的观看与对比,LZ决定采用当初写设 ...
- js 点击 隐藏弹出层
document.onmousedown = function(e){ var ev = document.all ? window.event : e; var _con = $("#ci ...
- python高手的自修课
python高手的自修课 作者:相国大人 目录 0.第0课:前言与参考文献 目标读者: 具有一定python基础的编程爱好者. 本系列博文为了尽可能少说废话,凡是能够用代码表达的,都尽量直接用代码.读 ...
- Python压缩及解压文件
Zip压缩 #-*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import zipfile #加载模块 # 压缩 z = zipf ...
- Linux常用命令及使用方法
一.Linux命令格式 command [-option] [parameter1] ..... 即:命令名 [选项] [参数] 选项:控制命令 参数:可有0个,1个或多个 二.常用命令及用法 1.与 ...
- 爬虫验证码处理与IP处理
引入 相关的门户网站在进行登录的时候,如果用户连续登录的次数超过3次或者5次的时候,就会在登录页中动态生成验证码.通过验证码达到分流和反爬的效果. - 1.对携带验证码的页面数据进行抓取 - 2.可以 ...
- rabbitMQ消息队列1
rabbitmq 消息队列 解耦 异步 优点:解决排队问题 缺点: 不能保证任务被及时的执行 应用场景:去哪儿, 同步 优点:保证任务被及时的执行 缺点:排队问题 大并发 Web nginx 1000 ...
- vue之vue-router跳转
vue之vue-router跳转 一.配置 在初始化使用vue-cli的时候会有vue-router的安装选择,选择安装即可. 二.嵌套路由 一般情况下,登录和项目页面属于同级,所以App.vue 只 ...
- ListBox和ComboBox绑定数据简单例子
1. 将集合数据绑定到ListBox和ComboBox控件,界面上显示某个属性的内容 //自定义了Person类(有Name,Age,Heigth等属性) List<Person> per ...
- 软件项目需求调研中的5W+1H定律案例分析
转:http://www.educity.cn/se/620915.html 对于软件的需求调研活动,虽然曾经写过三篇相关的需求管理文章,出发角度是从整体的需求管理过程考虑:在引入CMM(二)需求管理 ...