075day(做题目(动态规划:拦截导弹))

来源:互联网 发布:2016网络伤感歌曲大全 编辑:程序博客网 时间:2024/06/08 18:16

172210704111-陈国佳总结《2017年12月24日》【连续075天】

标题:做题目(动态规划:拦截导弹);

内容:

A.完成了一点PAT乙题;

B.完成了一道OJ上的动态规划题:
拦截导弹:

总时间限制: 1000ms 内存限制: 65536kB
描述
某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹。
输入
输入有两行,
第一行,输入雷达捕捉到的敌国导弹的数量k(k<=25),
第二行,输入k个正整数,表示k枚导弹的高度,按来袭导弹的袭击时间顺序给出,以空格分隔。
输出
输出只有一行,包含一个整数,表示最多能拦截多少枚导弹。
样例输入
8
300 207 155 300 299 170 158 65
样例输出
6

根据题意,可显而易见的看出这就是一道求最长降序子数列,但题中是不高于,所以可以是相同或降序的;

即a0>=a1>=a2.....>=ai;求最大的i;

可仿照之前的求最长子数列写:

#include<iostream>#include<algorithm>using namespace std;int main(){const int N=25;int k,MinLen[N];cin>>k;int a[k];for(int i=0;i<k;i++)  {cin>>a[i];  MinLen[i]=1;  }for(int i=1;i<k;i++){   for(int j=0;j<i;j++)   if(a[i]<=a[j])MinLen[i]=max(MinLen[i],MinLen[j]+1);}    cout<<*max_element(MinLen,MinLen+k);return 0;}

明日计划:学习;


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 中粮白52度价格 红外中速球 中红 白发皇妃中红帐之辱章节阅读 白发皇妃中红帐之辱 中红网 中纤局地址 中密度板纤维板 18mm中密度纤维板 e1中密度纤维板 中密度纤维板报价 中密度纤维板品牌 中密度纤维板网 中密度纤维板好吗 中密度纤维板生产 中密度纤维板密度板 中密度纤维板规格 中密度纤维板的价格 中密度纤维板怎么样 中密度纤维板家具好吗 mdf 中密度纤维板 什么是中密度纤维板 中纤板是什么材质 中纤板价格 水泥玻纤板 什么是中纤板 中纤板环保吗 中纤板和实木颗粒板 中纤板规格 中纤板的优缺点 中纤板图片 中纤密度板 中纤板和颗粒板 中纤板和密度板的区别 纤维板钉生产厂家 木纤维板 硬质纤维板厂家 纤维板厂 硬质纤维板 复合纤维板 木质纤维板