nyoj--79--拦截导弹
来源:互联网 发布:如何升级windows系统 编辑:程序博客网 时间:2024/06/06 19:50
拦截导弹
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于等于前一发的高度。某天,雷达捕捉到敌国导弹来袭。由于该系统还在试用阶段,所以只用一套系统,因此有可能不能拦截所有的导弹。
- 输入
- 第一行输入测试数据组数N(1<=N<=10)
接下来一行输入这组测试数据共有多少个导弹m(1<=m<=20)
接下来行输入导弹依次飞来的高度,所有高度值均是大于0的正整数。 - 输出
- 输出最多能拦截的导弹数目
- 样例输入
28389 207 155 300 299 170 158 65388 34 65
- 样例输出
62
解题思路:
动态规划的思路,用两个for循环嵌套,外面的for循环 用来枚举从数列开始到数列结束的各项元素,内层的循环求出外层循环枚举到的元素之前最多有多少个数大于这个元素,个数存储在dp数组里面。之后再遍历dp求出里面最大的哪一个,就是本题的答案,说白了就是求单调递减最长子序列。
代码:
C++ Code
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include<bits/stdc++.h>
using namespace std;
int a[50], dp[50];
int main ()
{
int n, m, i, j, k, maxn;
while(scanf("%d", &n) != EOF)
{
for(i = 1; i <= n; i++)
{
scanf("%d", &m);
memset(a, 0, sizeof(a));
memset(dp, 0, sizeof(dp));
for(j = 0; j < m; j++)
scanf("%d", &a[j]);
dp[0] = 1;
for(j = 1; j < m; j++)
{
dp[j] = 1;
for(k = 0; k <= j; k++)
{
if(a[k] > a[j] && dp[k] + 1 > dp[j])
dp[j] = dp[k] + 1;
}
}
maxn = dp[0];
for(j = 1; j < m; j++)
maxn = (maxn > dp[j]) ? maxn : dp[j];
printf("%d\n", maxn);
}
}
return 0;
}
using namespace std;
int a[50], dp[50];
int main ()
{
int n, m, i, j, k, maxn;
while(scanf("%d", &n) != EOF)
{
for(i = 1; i <= n; i++)
{
scanf("%d", &m);
memset(a, 0, sizeof(a));
memset(dp, 0, sizeof(dp));
for(j = 0; j < m; j++)
scanf("%d", &a[j]);
dp[0] = 1;
for(j = 1; j < m; j++)
{
dp[j] = 1;
for(k = 0; k <= j; k++)
{
if(a[k] > a[j] && dp[k] + 1 > dp[j])
dp[j] = dp[k] + 1;
}
}
maxn = dp[0];
for(j = 1; j < m; j++)
maxn = (maxn > dp[j]) ? maxn : dp[j];
printf("%d\n", maxn);
}
}
return 0;
}
阅读全文
0 0
- NYOJ-79:拦截导弹
- NYOJ 79 导弹拦截
- nyoj 79 导弹拦截
- nyoj-79-拦截导弹
- NYOJ 79 拦截导弹
- NYOJ 79 拦截导弹
- NYOJ 79 拦截导弹
- nyoj 79 拦截导弹
- nyoj 79 拦截导弹
- NYOJ 79 拦截导弹
- nyoj-79 拦截导弹
- nyoj 79 拦截导弹
- NYOJ 79 拦截导弹
- nyoj 79拦截导弹
- NYOJ 79 拦截导弹
- NYOJ 79 拦截导弹
- NYOJ 79 拦截导弹
- nyoj 79 拦截导弹
- Spring4.X + Spring MVC + Mybatis3 零配置应用开发框架搭建详解(5)
- HDU2767 Tarjan 解题报告
- PHP 微信公众号和html5接入微信支付
- c语言初步经典题10--买玫瑰问题
- linux救援模式介绍
- nyoj--79--拦截导弹
- 1016. 部分A+B (15)
- 关于PHP中的可变变量
- Android 系统ContentProvider 管理联系人,查询,增加 Name,Phone,E-mail。
- c语言解决特殊字符对齐问题
- 进程硬件上下文切换
- tensorflow--安装注意事项(windows)
- 设置form表单传输的编码格式 application/x-www-form-urlencoded、multipart/form-data、text/plain
- 易买网项目中添加jsp页面中格式化日期时,日期的格式不能有汉字,如2017年-08月-12日