博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU - 1257 最少拦截系统
阅读量:3904 次
发布时间:2019-05-23

本文共 1023 字,大约阅读时间需要 3 分钟。

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.

怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少套拦截系统.

Input

输入若干组数据.每组数据包括:导弹总个数(正整数),导弹依此飞来的高度(雷达给出的高度数据是不大于30000的正整数,用空格分隔)

Output

对应每组数据输出拦截所有导弹最少要配备多少套这种导弹拦截系统.

Sample Input

8 389 207 155 300 299 170 158 65

Sample Output

2

代码如下:

#include 
#include
#include
#include
using namespace std;const int maxn=1e6+5;int n;int a[maxn];int dp[maxn];int num=0;int main(){ int n; while(scanf("%d",&n)!=EOF) { num=0; for (int i=1;i<=n;i++) scanf("%d",&a[i]); for (int i=1;i<=n;i++) { int flag=0; for (int j=1;j<=num;j++) { if(dp[j]>a[i]) { dp[j]=a[i]; flag=1; break; } } if(flag==0) dp[++num]=a[i]; } printf("%d\n",num); } return 0;}

 

转载地址:http://ogaen.baihongyu.com/

你可能感兴趣的文章
用移动硬盘安装win7
查看>>
MinGW与Cygwin
查看>>
C/C++/VC++的好网站
查看>>
用WEB标准进行开发
查看>>
[译]关于Android图形系统的一些事实真相
查看>>
J2ME下的Zlib/Gzip/Zip压缩相关
查看>>
Android 模拟器中AVD路径的修改(WIN7)
查看>>
Cygwin 的安装配置
查看>>
Cygwin基本命令的使用方法
查看>>
Java本地接口(JNI)编程指南和规范(第二章)
查看>>
工欲善其事,必先利其器之—使用Atom来写markdown
查看>>
尽量少使用全局变量或全局单例,特别在Android开发过程中
查看>>
使用Visual stuido 2005 的 命令行 工具 CL 编译生成程序
查看>>
使用LayoutInflater的inflate方法的注意事项
查看>>
前期准备:JDK源码下载
查看>>
前期准备:了解下Open JDK与Oracle JDK的区别
查看>>
android:layout_gravity 和 android:gravity 的区别
查看>>
工欲善其事,必先利其器之—使用ImageMagick处理图片
查看>>
工欲善其事,必先利其器之—使用PlantUML画UML图
查看>>
Android开发填坑之setUseWideViewPort
查看>>