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

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

Description

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 
怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少套拦截系统. 

Input

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

Output

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

Sample Input

8 389 207 155 300 299 170 158 65

Sample Output

2 求导弹高度的最长连续递增序列的长度,,因为这些序列里的导弹是不可能共用一个系统的。
1 #include
2 int main() 3 { 4 int n; 5 while(scanf("%d",&n)!=EOF) 6 { 7 int i,j,d[10000],a[10000]; 8 for(i = 0 ; i < n ; i++) 9 {10 scanf("%d",&a[i]);11 d[i]=1;12 }13 for(i = 1 ; i < n ; i++)14 {15 for(j = 0 ; j < i ; j++)16 {17 if(a[j] < a[i] && d[i] < d[j]+1)18 d[i]=d[j]+1;19 }20 }21 int max=0;22 for(i = 0 ; i < n ; i++)23 {24 max=max>d[i]?max:d[i];25 }26 printf("%d\n",max);27 }28 }
 

 

 

转载于:https://www.cnblogs.com/yexiaozi/p/5761299.html

你可能感兴趣的文章
建造者模式
查看>>
hdu 1166 敌兵布阵 (线段树)
查看>>
突然想到了王自如
查看>>
Adding Flexcan driver support on Kernel
查看>>
ElastciSearch简单总结(笔记)
查看>>
14-angular.isDefined
查看>>
oracle高效分页查询总结
查看>>
Dubbo简单介绍及实例
查看>>
Apple Swift编程语言新手教程
查看>>
linux服务器加入windows域时报错Ticket expired
查看>>
iOS UI 18 数据库
查看>>
使用while和FOR循环分布打印字符串S='asdfer' 中的每一个元素
查看>>
小a的排列
查看>>
2018年,牛客网小白月赛5
查看>>
【Linux】vi编辑器命令
查看>>
IT综合学习网站收集
查看>>
Linux系统文件类型 特殊文件 和 进程间通信机制
查看>>
Xtrabackup数据全备份与快速搭建从服务器
查看>>
标签td设置隐藏(hidden)
查看>>
ns,ui
查看>>