联盟周赛2019810 csgo (动态规划、不下降子序列)
今天起晚了...就做了俩题 难受的一批...
题目描述
著名第一人称射击游戏 csgo 因其优秀的平衡性,爽快的射击感和科学的战术配比赢得了世界广大玩家的好评。 在一局游戏中,分为两个阵营,他们的目标就是消灭全部的对方敌人。
现在你是其中的一名玩家,不幸的是,你突然遭遇了许多个站成一横排,身高不同的敌人。
这种时候,用武器瞄准对方的头部进行 “爆头”(一击必杀)是化解险境的唯一方法。
不幸的是,你手中的武器由于过于老旧而后坐力巨大。(而且放浪的你还不喜欢压枪)
也就是说,在一轮扫射中,第一发子弹可以向任意高度水平射出,但是之后每发子弹射出的高度都不能低于前一发子弹射出的高度。(我们假设子弹在飞行中一直沿水平方向飞行,不会下落)
我们假定你无需考虑换弹问题,并且你是一名神枪手,拥有一颗子弹就可以对一个敌人进行“爆头”的能力,不会打空枪 。然而放浪的你有一个坏习惯,就是只喜欢从左向右扫射。
那么为了快速解决掉前方的所有敌人,请问你至少需要进行几轮扫射?
输入格式
本题输入若干组数据,每组数据分为两行。
第一行有一个整数 nnn,表示你面前遇到敌人的数量(1≤n≤100001 \le n \le 10000)
第二行有 n 个整数 hih_i,(1≤hi<MAX_INT1 \le hi< MAX\_INT)表示每个敌人的身高(认为头部的高度等于身高)
输出格式
一个整数,表示最少消灭全部敌人需要的扫射轮数
题目分析
如果当前目标比前面的导弹都低,就必须多开一个导弹,否则更新导弹高度即可
代码
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=1e6+;
int dp[maxn];
int n,x,cnt;
int main()
{
while(scanf("%d",&n)!=EOF){
memset(dp,,sizeof(dp));
cnt=;
for(int i=;i<=n;i++){
scanf("%d",&x);
int j;
for( j=;j<=cnt;j++){
if(x>=dp[j]){
dp[j]=x;
break;
}
}
if(j>cnt) dp[++cnt]=x;
}
printf("%d\n",cnt);
}
return ;
}
联盟周赛2019810 csgo (动态规划、不下降子序列)的更多相关文章
- 【最长下降子序列】【动态规划】【二分】XMU 1041 Sequence
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1041 题目大意: 一个二维平面,上面n(n<=1 000 000)个点.问至少选 ...
- Luogu 1020 导弹拦截(动态规划,最长不下降子序列,二分,STL运用,贪心,单调队列)
Luogu 1020 导弹拦截(动态规划,最长不下降子序列,二分,STL运用,贪心,单调队列) Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺 ...
- 【动态规划+高精度】mr360-定长不下降子序列
[题目大意] 韵哲君发现自己的面前有一行数字,当她正在琢磨应该干什么的时候,这时候,陈凡老师从天而降,走到了韵哲君的身边,低下头,对她耳语了几句,然后飘然而去. 陈凡老师说了什么呢,陈凡老师对韵哲君说 ...
- 动态规划——最长不下降子序列(LIS)
最长不降子序列是这样一个问题: 下面介绍动态规划的做法. 令 dp[i] 表示以 A[i] 结尾的最长不下降序列长度.这样对 A[i] 来说就会有两种可能: 如果存在 A[i] 之前的元素 A[j] ...
- HDU 6357.Hills And Valleys-字符串非严格递增子序列(LIS最长非下降子序列)+动态规划(区间翻转l,r找最长非递减子序列),好题哇 (2018 Multi-University Training Contest 5 1008)
6357. Hills And Valleys 自己感觉这是个好题,应该是经典题目,所以半路选手补了这道字符串的动态规划题目. 题意就是给你一个串,翻转任意区间一次,求最长的非下降子序列. 一看题面写 ...
- 【动态规划】【二分】【最长不下降子序列】洛谷 P1020 导弹拦截
最长不下降子序列的nlogn算法 见 http://www.cnblogs.com/mengxm-lincf/archive/2011/07/12/2104745.html 这题是最长不上升子序列,倒 ...
- 简单动态规划——最长公共子序列&&最长回文子序列&&最长上升||下降子序列
最长公共子序列,顾名思义当然是求两个字符串的最长公共子序列啦,当然,这只是一道非常菜的动规,所以直接附上代码: #include<iostream> #include<cstdio& ...
- HDU 1160 FatMouse's Speed (动态规划、最长下降子序列)
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 低价购买 (动态规划,变种最长下降子序列(LIS))
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
随机推荐
- 15.DRF学习以及相关源码阅读
1.http请求协议 代码很枯燥,结果和奇妙. 1.cbv django.vuews import View classs LoginView(View): def get(self,requset) ...
- IE8 CSS样式兼容性清单
IE8对于CSS2.1是完整支持的,对于CSS3则只是部分支持.下文中只列出IE8完全支持及完全不支持的样式,对于. 注:下文中的E.F均指html标签名,如p,img等. At-rules At类规 ...
- C语言 - strcpy和strncpy的编程实现及总结
一.字符串的strcpy与strncpy函数 1.编程实现strcpy函数(笔试很容易考到) 要求: 原型:char *stpcpy(char *strDest,char *strSrc); 头文件: ...
- 如何开始使用 Akka
如果你是第一次开始使用 Akka,我们推荐你先运行简单的 Hello World 项目.情况参考 Quickstart Guide 页面中的内容来下载和运行 Hello World 示例程序.上面链 ...
- c++复习——一个小疑问
C++中,子类为什么不能访问基类的private数据? emmm 来自一个vegetable dog的疑问: 首先基类可以通过调用自身public成员函数来访问private 而子类又可 ...
- Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序,支持异常邮件通知
1. Spring Boot Admin 是什么 Spring Boot Admin 是由 codecentric 组织开发的开源项目,使用 Spring Boot Admin 可以管理和监控你的 S ...
- Android_(游戏)打飞机05:处理子弹,击中敌机,添加计分板
(游戏)打飞机01:前言 传送门 (游戏)打飞机02:游戏背景滚动 传送门 (游戏)打飞机03:控制玩家飞机 传送门 (游戏)打飞机04:绘画敌机.添加子弹 传送门 (游戏)打飞机05:处理子弹, ...
- 微信小程序_(组件)form表单
Form表单.switch开关.数值选择器效果 官方文档:传送门 点击提交表单(按钮,提交开关,数值选择器,输入文本中)的值,显示在控制台上,点击重置,重置表单中的值. 实现过程 form表单,添加f ...
- 创建Idea创建SpringBoot项目 - 各个目录的解释
[SpringBoot-创建项目]一.通过Idea创建SpringBoot项目 一.首先我们通过Idea创建一个新项目 二.选择sdk和快速构建模板 三.填写项目基本信息 三.选择项目依赖 四.填写项 ...
- Golang Singleton
package example import ( "fmt" "sync") var m *singletonvar once sync.Once func G ...