1260:【例9.4】拦截导弹(Noip1999)

时间限制: 1000 ms 内存限制: 65536 KB

提交数: 4063 通过数: 1477

【题目描述】

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。

输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。

【输入】

n (一共n个导弹)

输入导弹依次飞来的高度。

【输出】

第一行:最多能拦截的导弹数;

第二行:要拦截所有导弹最少要配备的系统数。

【输入样例】

389 207 155 300 299 170 158 65

【输出样例】

6

2

思路:

求最多能拦截的导弹数就是求最长不上升子序

求拦截系统数,就是求最长上升子序

import java.util.Scanner;

public class lanjiedaodanwenti {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
//
// String str = sc.nextLine();
// String[] s = str.split(" ");
int n = sc.nextInt();
int[] num = new int[n];
// for(int i=0; i<s.length; i++) num[i] = Integer.parseInt(s[i]);
for (int i = 0; i <n; i++) {
num[i]=sc.nextInt();
}
int[] dp_1 = new int[n];
int[] dp_2 = new int[n];
for(int i=0; i<n; i++) {
dp_1[i] = 1; dp_2[i] = 1;
}
for(int i=0; i<n; i++) {
for(int j=0; j<i; j++) {
if(num[i]<=num[j]) {
dp_1[i] = Math.max(dp_1[i], dp_1[j]+1);
}else {
dp_2[i] = Math.max(dp_2[i], dp_2[j]+1);
}
}
}
// for(int i=0; i<s.length; i++) System.out.print(dp_1[i]+" ");
// System.out.println();
// for(int i=0; i<s.length; i++) System.out.print(dp_2[i]+" ");
// System.out.println();
int ans_1 = -1, ans_2 =-1;
for(int i = 0; i<n; i++) {
ans_1 = Math.max(ans_1, dp_1[i]);
ans_2 = Math.max(ans_2, dp_2[i]);
// System.out.print(num[i]+" ");
}
// System.out.println();
System.out.println(ans_1);
System.out.println(ans_2);
}
}

最新文章

  1. ActionListener的三种实现方法
  2. 例子:RSS Reader Sample
  3. android 6.0(api 23) SDK,不再提供org.apache.http.*(只保留几个类)
  4. h5-2
  5. centos 服务器配置(三) 之定时任务
  6. android入门系列- TextView EditText Button ImageView 的简单应用
  7. c#简单数组
  8. MQ学习(二)----ActiveMQ简介(转)
  9. 配置Raspbian 启用SPI I2C
  10. 知识点3-6:HTML辅助方法
  11. ztree异步加载
  12. RPCZ中的智能指针单例
  13. 055、创建macvlan网络 (2019-03-22 周五)
  14. linux-流程控制语言
  15. Database.SQL.join
  16. MySQL 主从复制相关参数
  17. Quartz定时任务和IIS程序池闲置超时时间冲突解决方案
  18. MySql中循环的使用
  19. Redis(一)Redis简述
  20. jquery收集表单数组及去掉字符串最后的逗号!

热门文章

  1. python统计英文文本中的回文单词数
  2. [hdu5313]二分图性质,dp
  3. 学习python的第一天,python的简单知识
  4. Elasticsearch系列---几个高级功能
  5. Tomcat session的实现:线程安全与管理
  6. JUC并发基础
  7. .gitignore 模式匹配
  8. Java Web项目部署到阿里云服务器(ECS)
  9. MySQL事务及实现、隔离级别及锁与优化
  10. Django之ORM配置与单表操作