chcod炸弹
【题目描述】
话说Cpp国和Pas国发生了战争, Pas国派出了强大的飞机战队, Cpp国于是使出了炸弹CHCOD 来反击Pas国的飞机舰队。然而CHCOD的发射器,只能逐渐往上打。所以Cpp国现在只能打 掉一部分的Pas国飞机。现在给出每舰队一个Pas国飞机飞行高度,求Cpp国最多打掉Pas 国飞机数(如果高度< 0,则是钻地机,CHCOD炸弹打不到)
【输入格式】
第一行:n Pas国发出的飞机舰队飞机数量 第二行:n个数,Pas国飞机飞行高度。
【输出格式】
一个数:Cpp国最多打掉Pas国飞机数。
【分析】
简单的最长上升子序列,一般的做法O(n^2),这里明显会超时,所以我们就用一个O(n log n)的算法。
我们先设置一个stack栈,存储我们的序列,然后我们维护这个stack,每次用二分找出比top大的最小的数,然后替换就可以了。
【代码】
- 1 #include<bits/stdc++.h>
- 2
- 3 using namespace std;
- 4
- 5 int n,top;
- 6 int a[100010],st[100010];
- 7
- 8 int main()
- 9 {
- 10 scanf("%d",&n);
- 11 int cnt=0;
- 12 for(int i=1;i<=n;i++){
- 13 int x;
- 14 scanf("%d",&x);
- 15 if(x>=0)a[++cnt]=x;
- 16 }
- 17 top=0; n=cnt;
- 18 for(int i=1;i<=n;i++){
- 19 if(a[i]>st[top])st[++top]=a[i];
- 20 else{
- 21 int l=1,r=top;
- 22 while(l<r){
- 23 int mid=(l+r)>>1;
- 24 if(st[mid]>a[i])r=mid;
- 25 else l=mid+1;
- 26 }
- 27 st[l]=a[i];
- 28 }
- 29 }
- 30 printf("%d\n",top);
- 31 return 0;
- 32 }
chcod炸弹的更多相关文章
- HDU 5934 Bomb(炸弹)
p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...
- 【BZOJ-1218】激光炸弹 前缀和 + 枚举
1218: [HNOI2003]激光炸弹 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1778 Solved: 833[Submit][Statu ...
- bat 炸弹升级
转自:http://digi.163.com/15/0320/06/AL4LP0QD0016192R.html 第1页:什么是批处理炸弹? 最近网上流传一个叫做<大哥别杀我>视频纷纷遭到网 ...
- fork炸弹
众所周知,bash是一款极其强大的shell,提供了强大的交互与编程功能.这样的一款shell中自然不会缺少“函数”这个元素来帮助程序进行 模块化的高效开发与管理.于是产生了由于其特殊的特性,bash ...
- BZOJ 1218: [HNOI2003]激光炸弹 前缀DP
1218: [HNOI2003]激光炸弹 Description 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值 ...
- 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇07:全屏炸弹》
7.全屏炸弹 全屏炸弹概述: 为了增设游戏的趣味性,我们制作一个游戏的基本框架以外.还会增设一些其他的额外的功能.比如5秒无敌状态.冰冻效果等.下面咱们以消灭屏幕中所有炸弹为例,看除了碰撞可以触发事件 ...
- csapp lab2 bomb 二进制炸弹《深入理解计算机系统》
bomb炸弹实验 首先对bomb这个文件进行反汇编,得到一个1000+的汇编程序,看的头大. phase_1: 0000000000400ef0 <phase_1>: 400ef0: 48 ...
- BZOJ 1218: [HNOI2003]激光炸弹( 前缀和 + 枚举 )
虽然source写着dp , 而且很明显dp可以搞...但是数据不大 , 前缀和 + 枚举也水的过去..... -------------------------------------------- ...
- 1218: [HNOI2003]激光炸弹
1218: [HNOI2003]激光炸弹 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1139 Solved: 542[Submit][Statu ...
随机推荐
- JUC 并发编程--03, 深刻理解锁, 8 锁现象,
如何判断锁的是谁? 永远知道是什么锁, 线程8锁:就是关于锁的8个问题 问题1: public class LockDemo01 { public static void main(String[] ...
- MySQL必知必会笔记-Mysql基本操作
Mysql基本操作 mysql的基本操作包括增.删.改.查,本书中前三章简单的介绍MySQL为何物,查是mysql中非常重要的功能,4-6章展示了mysql的查(查询--select)的简单实现,my ...
- Django OperationalError错误解决
Django项目实践中通过页面http://127.0.0.1:8000/admin/添加数据时报错,见下图 解决方法: 参考链接: https://stackoverflow.com/questio ...
- 一、Nginx的安装
1.下载nginx软件 http://nginx.org/download/ 2.安装依赖包 [root@client ~]# useradd -s /sbin/nologin nginx 创建ngi ...
- 【NX二次开发】Block UI 多行字符串
属性说明 常规 类型 描述 BlockID String 控件ID Enable Logical 是否可操作 Group Logical ...
- 【NX二次开发】Block UI 操作按钮
属性说明 常规 类型 描述 BlockID String 控件ID Enable Logical 是否可操作 Group Logical ...
- Netty 面试题 (史上最全、持续更新)
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
- 『无为则无心』Python基础 — 7、Python的变量
目录 1.变量的定义 2.Python变量说明 3.Python中定义变量 (1)定义语法 (2)标识符定义规则 (3)内置关键字 (4)标识符命名习惯 4.使用变量 1.变量的定义 程序中,数据都是 ...
- 番外篇:使用nssm工具将ES、Kibana、Logstash或者其他.bat文件部署为Windows后台服务的方法
使用NSSM工具安装bat文件为Windows服务 nssm是一个可以把bat批处理文件部署为Windows服务的小工具.例如很多.net项目可能还是在Windows服务器上面跑的,但是很多组件只提供 ...
- layui checkbox 样式
layui checkbox扩展插件: 一.新建 checkbox.css 样式文件 .checkBox .block{float:left; margin:5px;padding:6px 6p ...