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);   }
}

(Java实现) 拦截导弹相关推荐

  1. Java 算法 拦截导弹

    目录标题 题目描述 解题思路 代码 题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一 ...

  2. Android Java虚拟机拦截技术分析

    2019独角兽企业重金招聘Python工程师标准>>> 最近反编译金山毒霸,分析其广告拦截功能是如何实现的.根据金山毒霸的介绍,采用了java虚拟机拦截技术,带着好奇去研究了一下.在 ...

  3. BZOJ 2244: [SDOI2011]拦截导弹 DP+CDQ分治

    2244: [SDOI2011]拦截导弹 Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度.并且能够拦截 ...

  4. BZOJ - 2244 拦截导弹 (dp,CDQ分治+树状数组优化)

    BZOJ - 2244 拦截导弹 (dp,CDQ分治+树状数组优化) 1 #include<algorithm> 2 #include<iostream> 3 #include ...

  5. BZOJ2244 [SDOI2011]拦截导弹 【cdq分治 + 树状数组】

    题目 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度.并且能够拦截任意速度的导弹,但是以后每一发炮弹都不能高于前一发的高度,其 ...

  6. 1044 拦截导弹——http://codevs.cn/problem/1044/

    第一部分:题目 题目描述 Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于 ...

  7. 动态规划之——又见拦截导弹(nyoj814)

    问题描述: 又见拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一 ...

  8. 动态规划之——拦截导弹(nyoj79)

    问题描述: 拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮 ...

  9. NYOJ 79 拦截导弹

    拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任 ...

最新文章

  1. 【IM】关于多任务学习的理解
  2. (stl排序+检索)大理石在哪
  3. 解决nginx无法启动的问题——端口被占用
  4. uni-app中的tabBar配置
  5. 打印1到最大的n位数
  6. Android:屏幕自适应
  7. node2vec简单总结
  8. 计算机术语 打桩,动力打桩公式
  9. 面试被问到项目架构怎么说呢?
  10. html网页文本框无法输入,浏览器打开网页文本框无法输入文字如何解决
  11. bootstrap4-Collapse 折叠 酷炫特效
  12. Vue 不睡觉教程3 - 来点实在的:自动计算剩余时间的任务列表
  13. 算法图解(递归调用栈)
  14. 巴比特 | 元宇宙每日必读:数字藏品二级市场乱象丛生,00后成新韭菜,监管迫在眉睫?...
  15. awscli配置Access key ID和Secret access key
  16. java 怎么让打印信息换行?
  17. 网络爬虫:网页信息获取
  18. windows 和 Linux 查看IP属性(ipconfig,ifconfig)
  19. 基于C++控制台(Windows平台)的一个植物大战僵尸小游戏
  20. 有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱(n <= 100000),有多少中组合可以组成n分钱?

热门文章

  1. php换脸,gif动态图换脸 动态图如何换脸 怎样更换gif动态图的人脸头像
  2. 如何使用OCR编辑器检查和识别文本
  3. 20210916-政府会计制度100问-20
  4. app定位、地图、坐标系的那些坑
  5. Numpy生成随机数及服从常见分布的随机数
  6. 视频教程-清华-尹成老师-java基础-Day21-Java
  7. opencv实现二值图像孔洞填充
  8. iscsi服务器的搭建
  9. 初步了解STM32的学习笔记(以STM32F103C8T6为例)
  10. 个人云服务器部署leanote(蚂蚁笔记)