拦截导弹

时间限制: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
来源
[张洁烽]原创
上传者
张洁烽
这道题由于数据给的很水,所以做法多样,我才用的是搜索...
代码如下:
 #include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
int n,m,cnt,ans;
int str[];
void dfs(int a,int step)
{
if(step>m) return ; if(a>str[step]||a==)
{
cnt++; //用来统计拦截的数目
if(cnt>ans) ans=cnt; //记录下最大的最大值
dfs(str[step],step+); //就将最大值作为标尺
cnt--;
}
dfs(a,step+); //表示跳过这个值
}
int main()
{
int i,j;
scanf("%d",&n);
while(n--)
{
ans=cnt=;
scanf("%d",&m);
for(i= ; i<=m ; i++)
scanf("%d",&str[i]);
dfs(,);
printf("%d\n",ans);
}
return ;
}

最新文章

  1. Jquery揭秘系列:谈谈bind,one,live,delegate事件及实现
  2. android 命名 数组 所有国家 String[] COUNTRIES
  3. MDI窗体容器 权限设置
  4. sql子查询 嵌套SELECT语句
  5. Linux里如何查找文件内容
  6. nodejs express测试
  7. protocolbuffe
  8. 关于spring管理hibernate事物
  9. 多线程 Worker Thread 模式
  10. 发掘ListBox的潜力(二):鼠标拖放插入点提示
  11. PHP 文件上传全攻略
  12. 浅谈 Axios 在 Vue 项目中的使用
  13. thinkphp实现like模糊查询实例
  14. odoo开发笔记 -- 模型字段定义中设置默认值
  15. Confluence 6 修改站点的标识图片
  16. nodejs的koa2框架
  17. SQL Server 跨域访问
  18. final发布48小时用户调查报告
  19. oracle 学习blogs
  20. bioperl 格式化genebank的输出

热门文章

  1. Cheatsheet: 2014 12.01 ~ 12.31
  2. matplotlib
  3. django-crontab定时任务
  4. Spring的起源和背景
  5. Perfection Kills
  6. Java中枚举类型简单学习
  7. iOS - OC NSCache 缓存
  8. caffe里的blocking_queue.hpp与.cpp干了点什么呢???
  9. Java编程思想学习笔记_6(并发)
  10. Android播放视频