nyist oj 79 拦截导弹 (动态规划基础题)
拦截导弹
- 描写叙述
-
某国为了防御敌国的导弹突击。发展中一种导弹拦截系统。可是这样的导弹拦截系统有一个缺陷:尽管它的第一发炮弹可以到达随意的高度。可是以后每一发炮弹都不能高于等于前一发的高度。某天。雷达捕捉到敌国导弹来袭。因为该系统还在试用阶段。所以仅仅用一套系统。因此有可能不能拦截全部的导弹。
- 输入
- 第一行输入測试数据组数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 - 来源
动态规划基础题,就是求单调递减最长子序列,事实上就和单调递增最长子序列一样的做法,把当中推断语句改一下即可了。思想是一样的;
http://blog.csdn.net/whjkm/article/details/38582411 单调递增最长子序列能够參看之前的那篇博客;
以下是代码:
#include <cstdio>
#include <cstring>
const int maxn=25;
int a[maxn],dp[maxn],m,Max;
void LICS()
{
memset(dp,0,sizeof(dp));
for(int i=0;i<m;i++)
{
dp[i]=1;
for(int j=0;j<i;j++)
if(a[i]<a[j] && dp[i]<dp[j]+1)//a[i]<a[j]就是单调递减最长子序列。思想上和递增的是一样的
dp[i]=dp[j]+1;
}
Max=0;
for(int i=0;i<m;i++)
if(Max<dp[i])
Max=dp[i];
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
for(int i=0;i<m;i++)
scanf("%d",&a[i]);
LICS();
printf("%d\n",Max);
}
return 0;
}
nyist oj 79 拦截导弹 (动态规划基础题)的更多相关文章
- nyoj 79 拦截导弹 (动态规划)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=79 题意即求最长单调递减子序列 #include<iostream> #inc ...
- nyoj 79 拦截导弹
拦截导弹 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到 ...
- nyoj--814--又见拦截导弹(动态规划+贪心)
又见拦截导弹 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一种导弹拦截系 ...
- 最长递增子序列问题 nyoj 17单调递增最长子序列 nyoj 79拦截导弹
一, 最长递增子序列问题的描述 设L=<a1,a2,…,an>是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=<aK1,ak2,…,akm>,其中k1< ...
- 清橙 A1120 拦截导弹 -- 动态规划(最长上升子序列)
题目地址:http://oj.tsinsen.com/A1120 问题描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但 ...
- 九度OJ 1197:奇偶校验 (基础题)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3590 解决:1511 题目描述: 输入一个字符串,然后对每个字符进行奇校验,最后输出校验后的二进制数(如'3',输出:10110011). ...
- 九度OJ 1059:abc (基础题)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3642 解决:2869 题目描述: 设a.b.c均是0到9之间的数字,abc.bcc是两个三位数,且有:abc+bcc=532.求满足条件的 ...
- 九度OJ 1057:众数 (基础题)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:8431 解决:2819 题目描述: 输入20个数,每个数都在1-10之间,求1-10中的众数(众数就是出现次数最多的数,如果存在一样多次数的 ...
- 九度OJ 1032:ZOJ (基础题)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4569 解决:2561 题目描述: 读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的 ...
随机推荐
- 读取XML文件的几种方式的效率分析
第一种:使用XmlReader来读取. Stopwatch sw = Stopwatch.StartNew(); List<Dictionary<string, string>> ...
- C/C++默认浮点型
代码: #include <iostream> #include <cstdio> using namespace std; void test(int a){ cout< ...
- C/C++中unsigned char和char的区别
代码: #include <cstdio> #include <iostream> using namespace std; int main(){ unsigned char ...
- Qt5中QMessageBox::warning()的第一个参数写this时出错
StandardButton QMessageBox::warning ( QWidget * parent, const QString & title, const QString &am ...
- 2.1 Java I/O简史
Java 1.0 到 1.3 中的 IO 没有而 Java 1.4 中引入的 NIO 有的“改进”:非阻塞IO.缓冲区.通道层.字符集.内存数据.Perl(正则表达式之王): 下一代 I/O-NIO. ...
- 带格式导出数据到Excel
导出按钮事件 protected void Button1_Click(object sender, EventArgs e) { Response.Clear(); ...
- Golang http包下FileServer的使用
FileServer文档:https://godoc.org/net/http#FileServer 今天看到http的 Handle 方法,所以就像试试,就找到FileServer FileServ ...
- rownum的使用
Oracle 提供了rownum,rownum是一个隐含的字段,默认从1开始. 取得前5条记录: 采用rownum进行分页查询: 需要使用三层嵌套查询来完成分页查询: 例如查询第三到第四条记录: se ...
- 温习PYTHON语法
看WEBPY的源码结构有点晕,原来很多语法结构都忘了,继承之些. 再看A BYTE OF PYTHON.慢慢补.. number = 23 guess = int(raw_input('Enter a ...
- 10 001st prime number
这真是一个耗CPU的运算,怪不得现在因式分解和素数查找现在都用于加密运算. By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13 ...