拦截导弹问题(递归)
问题描述
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。
输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。
输入格式:
一行,为导弹依次飞来的高度
输出格式:
两行,分别是最多能拦截的导弹数与要拦截所有导弹最少要配备的系统数
思路
本题目采用的递归思想,出口为考虑到了最后的一颗导弹。
取递归拦截此导弹和不拦截此导弹的最大值。
代码如下
#include<bits/stdc++.h>
using namespace std;
int n;
int d[100];
int fill(int num,int sum,int h)
{if(num==n){return sum;}int a=fill(num+1,sum,h);int b=0;if(d[num]<h){b=fill(num+1,sum+1,d[num]);}return max(a,b);
}
int count(int n,int a[])
{int num=1;for(int i=1;i<n;i++){if(a[i]>a[i-1])num++;}return num;
}
int main()
{int num;cin>>n;for(int i=0;i<n;i++)cin>>d[i];cout<<fill(0,0,3001)<<endl;cout<<count(n,d)<<endl;
}
拦截导弹问题(递归)相关推荐
- BZOJ - 2244 拦截导弹 (dp,CDQ分治+树状数组优化)
BZOJ - 2244 拦截导弹 (dp,CDQ分治+树状数组优化) 1 #include<algorithm> 2 #include<iostream> 3 #include ...
- 拦截导弹 导弹防御系统
拦截导弹 & 导弹防御系统 拦截导弹 导弹防御系统 拦截导弹 题目链接:acwing1010. 拦截导弹 题目描述: 输入输出: 分析: 第一个问题为输出最长递减子序列,由于导弹数在1000以 ...
- 牛客:【2021秋季算法入门班第七章习题:动态规划1】部分题解:方块与收纳盒、舔狗舔到最后一无所有、可爱の星空、[NOIP1999]拦截导弹
题单链接:牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com) P1001 方块与收纳盒 传送门:1001-方块与收纳盒_2021秋季 ...
- BZOJ 2244: [SDOI2011]拦截导弹 DP+CDQ分治
2244: [SDOI2011]拦截导弹 Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度.并且能够拦截 ...
- BZOJ2244 [SDOI2011]拦截导弹 【cdq分治 + 树状数组】
题目 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度.并且能够拦截任意速度的导弹,但是以后每一发炮弹都不能高于前一发的高度,其 ...
- 1044 拦截导弹——http://codevs.cn/problem/1044/
第一部分:题目 题目描述 Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于 ...
- 动态规划之——又见拦截导弹(nyoj814)
问题描述: 又见拦截导弹 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一 ...
- 动态规划之——拦截导弹(nyoj79)
问题描述: 拦截导弹 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮 ...
- NYOJ 79 拦截导弹
拦截导弹 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任 ...
- P2487 [SDOI2011]拦截导弹(cdq分治/计数问题思想)
P2487 [SDOI2011]拦截导弹 求解二维上的LIS,并且要求出每个点的选中概率. 首先对于每个点的选中概率,可以通过方案数计算,那么就是选中它的方案数除以总方案数.关键在于选中它的方案数怎么 ...
最新文章
- 【转载】如何组建一支优秀的数据分析团队?
- App推广中如何寻找200个以上渠道
- Oracle视图的作用与安全性
- BroadcastReceive之ip拨号
- getchar()到底怎么用_怎样才能真正发挥肥效,腐植酸水溶肥到底怎么用
- python 将列表中的字符串转为数字_python 将列表中的字符串转为数字
- 【Vue.js源码解析 一】-- 响应式原理
- AndroidStudio_报错PluginApplicationException: Failed to apply plugin [id ‘com.and---Android原生开发工作笔记227
- 微信小程序制作-随笔4
- 3 Machine-Level Representation 程序的机器级表示
- RPM软件包管理(安装、卸载、查询、制作)
- python的入门TCP编程
- Task5:第五回:样式色彩秀芳华
- C语言程序设计第五版谭浩强课后答案 第三章习题答案
- python简易中文名转英文小程序
- java 多线程 实现死锁问题
- 恢复突然消失的Chrome浏览器书签
- 低功耗蓝牙芯片基础知识
- 重装系统计算机无法启动,重装系统电脑无法开机怎么办?重装系统后电脑无法开机常见故障...
- MATLAB隐函数绘图 使用隐函数作二维图 使用隐函数作三维图