nyoj拦截导弹

来源:互联网 发布:电缆标识球数据 编辑:程序博客网 时间:2024/06/05 12:05


/*拦截导弹
时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统。
但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,
但是以后每一发炮弹都不能高于等于前一发的高度。
某天,雷达捕捉到敌国导弹来袭。由于该系统还在试用阶段,所以只用一套系统,
因此有可能不能拦截所有的导弹。
输入第一行输入测试数据组数N(1<=N<=10)
 接下来一行输入这组测试数据共有多少个导弹m(1<=m<=20)
 接下来行输入导弹依次飞来的高度,所有高度值均是大于0的正整数。
输出输出最多能拦截的导弹数目样例输入2
8
389 207 155 300 299 170 158 65
3
88 34 65
样例输出6
2*/
/*动态规划   状态转移方程 f[i]=max{f[j]}+1 0<=j<i && h[j]>h[i]   */ 

#include<stdio.h>  #include<string.h>  #define N 23  int h[N];     int f[N];   //保存f[i]当前最多拦截数0<=i<N  int main()  {      int t,m,i,j,max,max2;      scanf("%d",&t);      while(t--)      {          scanf("%d",&m);          for(i=0;i<m;i++)              scanf("%d",&h[i]);          f[0] = 1;          max2 = 0;   //用以记录最多拦截的个数          for(i=1;i<m;i++)          {              max = 1;              for(j=0;j<=i-1;j++)                  if (h[i]<h[j] && f[j]+1>max)  //不能高于等于前一个h[i]<h[j]                      max = f[j]+1;   //寻找最多的拦截数              f[i] = max;              if (max>max2)max2 = max;          }          printf("%d\n",max2);        }      return 0;  }  



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 20个月宝宝天天晚上不睡觉怎么办 八个月大小孩天天晚上不睡觉怎么办 如果开了光的貔貅不要了要怎么办 刚岀生的婴儿长得太快怎么办 呼市去办牌照时没有牌照怎么办 宾馆发现隐藏的摄像头怎么办报警吗 拍拍贷律师函寄到家里了怎么办 欠了拍拍贷本息一万多了怎么办 把人偷小孩的人贩子打死了怎么办 怀孕3个月没有胎心怎么办 社保局打印关系转移信封之后怎么办 长裙变装外出被发现了怎么办 超变陀螺怎么绳子拉不出来怎么办 梦幻诛仙传说时间得不到东西怎么办 夹在强势母亲和强势老公中间怎么办 工作调动校长总拖着不盖章怎么办 宝贝在妈妈肚子里发育慢怎么办 领导安排你负责一次讲座你怎么办 雷蛇北海巨妖耳机有回音怎么办 手机直播声卡有杂音有回音怎么办 大班见到陌生人入园怎么办安全教案 两首歌合并到一起中间有停顿怎么办 想做主持人但不是播音专业怎么办 动脉造影术2天后穿刺点出血怎么办 战舰世界买了重复金币船怎么办 戒指戴在手上取不下来怎么办 工作中难以和同事上司相处怎么办 老是被上司和同事欺负我该怎么办 桌面太低座位太高写字不舒服怎么办 一个人如果欠下网贷无法偿还怎么办 c语言的编译和运行不见了怎么办 8k纸的国庆节手抄报怎么办 合同员工签字了老板一直未签怎么办 下体长毛了很多肉芽很痒怎么办 对方拟把假离婚协议弄假成真怎么办 领主之塔改版后旧材料怎么办 汽车遥控钥匙打不开车门怎么办 苹果手机访问限制密码忘了怎么办 苹果的访问限制密码忘了怎么办 手机下雨天进水声音出了问题怎么办 胸太小了该怎么办经常揉胸会变大吗