题目描述

伟大的2320学长特别喜欢打地鼠游戏,这个游戏开始后,会在地板上冒出一些地鼠来,你可以用榔头去敲击这些地鼠,每个地鼠被敲击后,将会增加相应的游戏分值。可是,所有地鼠只会在地上出现一段时间(而且消失后再也不会出现),每个地鼠都在0时刻冒出,但停留的时间可能是不同的,而且每个地鼠被敲击后增加的游戏分值也可能是不同。
最近2320学长经常玩这个游戏,以至于敲击每个地鼠只要1秒。他在想如何敲击能使总分最大。

输入

输入包含3行,第一行包含一个整数n(1<=n<=100000)表示有n个地鼠从地上冒出来,第二行n个用空格分隔的整数表示每个地鼠冒出后停留的时间(Maxt<=50000),第三行n个用空格分隔的整数表示每个地鼠被敲击后会增加的分值v(v<=1000)。每行中第i个数都表示第i个地鼠的信息。

输出

输出只有一行一个整数,表示所能获得的最大游戏总分值。

样例输入

5
5 3 6 1 4
7 9 2 1 5

样例输出

24

提示

30%的数据保证n<=100, t<=500,v<=50
60%的数据保证 n<=10000,t<=3000,v<=500
100%的数据保证 n<=100000,t<=5000,v<=1000

思路:充分利用优先队列,让地鼠按照时间从小到大排序。设置一个当前时间遍历所有的地鼠,如果地鼠的时间小于当前时间,那么就和队列中的第一个比较,看看谁的价值大,如果遍历到的这个价值大于队列上的那个价值,就将队列上的pop,并且将当前的入队列,如果时间大于当前时间则直接入队列。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
priority_queue <ll,vector<ll>,greater<ll> > q;//定义一个优先队列,以时间从小到大的排列
struct node{int t,v;
}pp[100010];
bool cmp(node a,node b)
{return a.t<b.t;
}
int main()
{int n;ll sum,ans;while(scanf("%d",&n)!=EOF){sum=ans=0;for(int i=0;i<n;i++){scanf("%d",&pp[i].t);}for(int i=0;i<n;i++){scanf("%d",&pp[i].v);}sort(pp,pp+n,cmp);for(int i=0;i<n;i++){if(sum>=pp[i].t){if(pp[i].v>q.top()){ans+=pp[i].v-q.top();q.pop();q.push(pp[i].v);}}else{//ans+=pp[i].v;q.push(pp[i].v);sum++;}}/*for(int i=0;i<sum;i++){ans+=q.top();q.pop();}*/printf("%d\n",ans);}return 0;
}

cpu个人训练四 K 打地鼠游戏相关推荐

  1. java四连环游戏编程_Java实现四连环棋游戏

    本文实例为大家分享了Java实现四连环棋游戏的具体代码,供大家参考,具体内容如下 游戏规则: (1)双人游戏,有黑红两色棋子,双方各执一色棋子. (2)空棋局开盘,黑棋先发,从最上面一行开始下,棋子会 ...

  2. 月份对比_2020年5月份,四款主流游戏电脑配置横向对比,你会选择哪款呢?

    Hello大家好,我是兼容机之家的小牛. 5月伊始,组装机硬件价格有着不小的回落,不像年初的时候那么高了,现在是个装机的好时机. 今天小牛梳理一下目前市面上卖得比较火热的电脑硬件,顺便给大家带来四款主 ...

  3. 嵌入式系统项目设计——基于LED、按键、蜂鸣器的打地鼠游戏(完整代码)

    内容摘自上学期嵌入式系统课程设计最终的实验报告,因为CSDN不支持上传word资料,所以我就摘录下来写进文章里了,希望可以帮助到你 第一章 绪论 1.1选题背景 打地鼠游戏是一种非常受小孩子欢迎的游戏 ...

  4. python打地鼠游戏代码_Python 0基础开发游戏:打地鼠(详细教程)VS code版本

    如果你没有任何编程经验,而且想尝试一下学习编程开发,这个系列教程一定适合你,它将带你学习最基本的Python语法,并让你掌握小游戏的开发技巧.你所需要的,就是付出一些时间和耐心来尝试这些代码和操作.文 ...

  5. 数字系统设计————打地鼠游戏设计

    一.设计题目说明 此设计意在实现一个相对具有娱乐性的打地鼠游戏模块功能,能够产生随机出现的地鼠,并能对虚拟的敲击按键做出灵敏的识别与判断,从而进行必要的计分与计时行为. 二.实验平台 开发软件: Qu ...

  6. linux打地鼠游戏代码,JavaScript实现打地鼠小游戏

    一.实验说明 1. 环境介绍 本实验环境采用Ubuntu Linux桌面环境,实验中会用到桌面上的程序: Xfce终端: Linux命令行终端,打开后会进入Bash环境,可以使用Linux命令 Fir ...

  7. 如何用计算机打地鼠,《“打地鼠”游戏的程序实现》教学设计

    [教材分析] 本节课教学是在浙教版<信息技术基础>"3.4算法及其实现"内容学完之后的一堂综合应用课,依据是<课程标准>中的: (一)计算机解决问题的基本过 ...

  8. python打地鼠游戏教程_Python 0基础开发游戏:打地鼠(详细教程)VS code版本

    如果你没有任何编程经验,而且想尝试一下学习编程开发,这个系列教程一定适合你,它将带你学习最基本的Python语法,并让你掌握小游戏的开发技巧.你所需要的,就是付出一些时间和耐心来尝试这些代码和操作.文 ...

  9. python下载字体管家_使用pygame制作打地鼠游戏

    使用pygame制作打地鼠游戏 1.运行结果预览 开始界面 第一关 第二关 第三关 第四关 第五关 游戏结束 2.游戏功能介绍 2.1开发环境: python版本:python3.7 2.2相关模块: ...

  10. WPF 一个训练记忆力的小游戏——记忆联盟

    WPF 一个训练记忆力的小游戏--记忆联盟 一.简述 记--一个用来训练记忆力的小游戏--记忆联盟. 例子打包:https://wwa.lanzous.com/iM4ZDllmjzi       (2 ...

最新文章

  1. 用supervisord管理杂乱的服务
  2. 青龙羊毛——新快手极速版(搬运,非原创)
  3. Yii的查询搜索函数find findAll findOne:find就是返回结果 findone就是返回一条数据 findall就是返回所有数据
  4. vm磁盘映射 不能启动_软网推荐:网盘变身本地磁盘
  5. 数值分析-拉格朗日中值定理与积分中值定理
  6. Mysql事件的创建和使用
  7. 快速了解babel工作原理
  8. 华为数通笔记-NQA
  9. ivx动效按钮 基础按钮制作 01
  10. 传智黑马python18期_传智博客黑马Python就业14期资料
  11. 中国眼下拥有的人造卫星的种类及其作用
  12. 2021年应用市场放假安排
  13. ESModule中载入commjs
  14. MySQL数据库存储过程讲解与实例
  15. 数据输入流与数据输出流
  16. 受力分析软件_学了那么多力学,怎么还是不会做有限元分析?
  17. HTML及CSS常用知识点复习
  18. 耀世升级发布,阿里新出第三版Java多线程核心技术手册PDF全彩版
  19. 论文阅读_DeepWalk
  20. WIin10——QTP10.0运行mgn-mqt82未能生成lservrc文件

热门文章

  1. 2021年美赛资料准备
  2. woff文件 服务器上找不到,字体文件未找到错误:IIS服务器上部署svg/woff/woff2字体 MIMe类型配置...
  3. 台式计算机自动关机,电脑会自动关机是什么原因,台式电脑自动关机是什么原因...
  4. SAP培训行业权威评测---51sap培训评测网(www.51sap.net)
  5. 数据库实验课堂作业-1.1数据定义
  6. 用VSCode写简历表
  7. java什么是继承_JAVA中什么是继承?
  8. FFmpeg+SDL纯语音播放器
  9. 计算摄影: 高动态范围成像
  10. Linux平台基于v4l2开发免驱摄像头-输出为Opencv Mat