试题 算法提高 拦截导弹

2023-11-05

资源限制

内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s

问题描述

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

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

输入格式

  一行,为导弹依次飞来的高度

输出格式

  两行,分别是最多能拦截的导弹数与要拦截所有导弹最少要配备的系统数

样例输入

389 207 155 300 299 170 158 65

样例输出

6
2

// 思路:

// (1)求“最多能拦截的导弹数”就是求最长递减子序列的长度

// (2)求“要拦截所有导弹最少要配备的系统数”就是求最长递增子序列的长度

f[i][j]

 

0

1

2

3

4

5

6

 

 

 

a

e

d

g

h

b

0

 

0

0

0

0

0

0

0

1

a

0

1

1

1

1

1

1

2

b

0

1

1

1

1

1

2

3

c

0

1

1

1

1

1

2

4

d

0

1

1

2

2

2

2

5

g

0

1

1

2

3

3

3

6

h

0

1

1

2

3

4

4

子序列的求发法:

代码实现:

import java.util.Scanner;

public class 导弹拦截 {
    // 思路:
    // (1)求“最多能拦截的导弹数”就是求最长递减子序列的长度
    // (2)求“要拦截所有导弹最少要配备的系统数”就是求最长递增子序列的长度
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();// 输入技巧
        String[] s = str.split(" ");
        int[] a = new int[s.length];
        int[] dp = new int[s.length];
        int[] dp1 = new int[s.length];
        for (int i = 0; i < s.length; i++) {
            a[i] = Integer.valueOf(s[i]);
        }
        // 最长递减子序列
        int max = 0;
        for (int i = 0; i < s.length; i++) {
            dp[i] = 1;// 默认每一个就是一个长度
            for (int j = 0; j < i; j++) {
                if (a[j] >= a[i]) {
                    dp[i] = Math.max(dp[i], dp[j] + 1);
                }
                max = Math.max(max, dp[i]);
            }
        }
        System.out.println(max);
        // 最长递增子序列
        int maxx = 0;
        for (int i = 0; i < a.length; i++) {
            dp1[i] = 1;// 默认每一个就是一个长度
            for (int j = 0; j < i; j++) {
                if (a[i] >= a[j]) {
                    dp1[i] = Math.max(dp1[i], dp1[j] + 1);
                }
                maxx = Math.max(maxx, dp1[i]);
            }
        }
        System.out.println(maxx);
    }

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

试题 算法提高 拦截导弹 的相关文章

  • 如何在Netbeans中插入main方法(快捷方式)

    有时您想运行单个文件来快速测试某些代码 正在输入public static void main String args 每次都很乏味 怎样才能做得更快呢 由于 Netbeans 中预定义的代码模板 这很简单 只需输入psvm并按 Tab 键
  • JavaFX 图像未在舞台中显示

    我尝试了很多次 尝试了很多方法 但都无法让自己的形象在舞台上如我所愿 我认为这可能与java寻找资源的路径有关 但我不确定 因为我刚刚开始使用视觉库 在本例中为JavaFX 这是我的目录结构 MyProject assets img myI
  • Java、Oracle 中索引处缺少 IN 或 OUT 参数:: 1 错误

    您好 我使用 Netbeans 8 0 2 和 Oracle 11g Express Edition 在 JSF 2 2 中编写了一个图书馆管理系统 我有几个名为 书籍 借阅者 等的页面 以及数据库中一些名为相同名称的表 我的问题是这样的
  • 如何比较 Struts 2 中 url 请求参数中的单个字符

    我正在读取具有单个字符的 url 参数 它将是Y or N 我必须写一个条件来检查它是否Y or N并做相应的事情 这是我写的 但似乎不起作用 总是转到其他地方 网址是
  • 哪个 Swing 布局管理器可以获得我想要的布局?

    我正在尝试按照这个模型制作一个基本的登录菜单 我决定将整个菜单放入 JPanel 中 以便在连接成功后我可以切换到另一个面板 所以我决定使用 Borderlayout 将标题放在北区 将连接按钮放在南区 我将边框布局的中心本身设置为面板 我
  • Spring3/Hibernate3/TestNG:有些测试给出 LazyInitializationException,有些则没有

    前言 我在单元测试中遇到了 LazyInitializationException 的问题 而且我很难理解它 正如你从我的问题中看到的那样Spring 中的数据库会话 https stackoverflow com questions 13
  • Java 正则表达式 - 字母数字,最多一个连字符,句点或下划线,七个字符长

    我是 Java 正则表达式工具的新手 尽管它们潜力巨大 但我很难完成这项任务 我想编写一个正则表达式来验证遵循以下语法的输入字符串 小写字母和数字的任意组合 仅一个下划线 一个破折号或一个句号 无其他特殊字符 最小长度为 5 我想出了以下解
  • 如何拦截 REST 端点以接收所有标头?

    我当前的代码是 Path login RequestScoped public class LoginResource GET SecurityChecked public Response getUser HeaderParam AUTH
  • 容器中的 JVM 计算处理器错误?

    最近我又做了一些研究 偶然发现了这一点 在向 OpenJDK 团队抱怨之前 我想看看是否有其他人观察到这一点 或者不同意我的结论 因此 众所周知 JVM 长期以来忽略了应用于 cgroup 的内存限制 众所周知 现在从 Java 8 更新某
  • 如何在 Eclipse 中使用其他外部 jar 依赖项创建不可运行/不可执行的 jar

    我无法通过 Eclipse 导出向导创建普通的 jar 不可运行 不可执行 它仅创建 jar 文件 但不会导出依赖的 jar 从而在从其他类调用导出的 jar 的方法时出现错误 请帮助 非常感谢 kurellajunior的建议 它是通过使
  • Java-如何将黑白图像加载到二进制中?

    我在 FSE 模式下使用 Java 和 swing 我想将完全黑白图像加载为二进制格式 最好是二维数组 并将其用于基于掩码的每像素碰撞检测 我什至不知道从哪里开始 过去一个小时我一直在研究 但没有找到任何相关的东西 只需将其读入Buffer
  • Jenkins 的代码覆盖率 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我想在java中使用XQuery进行Xml处理

    我想用XQuery用于从 java 中的 Xml 获取数据 但我没有得到需要为此添加哪个 Jar 我在谷歌上搜索了很多 但没有得到任何有用的例子 例如我得到以下链接 https docs oracle com database 121 AD
  • 在 Java 中将弯音发送到 MIDI 音序器

    我了解启动和运行 MIDI 音序器的基础知识 并且希望能够在播放过程中增加 减小序列的音高 但弯音是发送到合成器而不是音序器的消息 我尝试将音序器的接收器设置为合成器的发射器 当我发送弯音短消息时 音序器保持相同的音调 但随后合成器以新的弯
  • 如何在Java媒体框架中学习.wav持续时间?

    我正在尝试使用 java 媒体框架将 mov 文件与 wav 文件合并 因此我需要知道它们的持续时间 我怎样才能做到这一点 任何想法 将不胜感激 您可以使用以下方式了解声音文件的持续时间 即 VitalyVal 的第二种方式 import
  • Android Gradle 同步失败:无法解析配置“:classpath”的所有工件

    错误如下 Caused by org gradle api internal artifacts ivyservice DefaultLenientConfiguration ArtifactResolveException Could n
  • 为什么我的代码会产生错误:该语句没有返回结果集[重复]

    这个问题在这里已经有答案了 我正在从 Microsoft SQL Server Studio 执行以下查询 该查询工作正常并显示结果 SELECT INTO temp table FROM md criteria join WHERE us
  • 使用 secp256r1 曲线和 SHA256 算法生成 ECDSA 签名 - BouncyCastle

    我正在尝试使用带有 secp256r1 曲线 P256 的 ECDSA 和用于消息哈希的 SHA256 算法生成签名 我也在使用 Bouncy Castle 库 下面的代码 public class MyTest param args pu
  • 为什么这个私人浮动字段变为零?

    我有一些奇怪的行为 我很难向自己解释 称为 textureScale 的浮点字段变为零 如果某些代码正在更改该值 则可以解释这一点 然而 我希望能够通过将其设置为 私有最终浮点 来导致构建失败 或者至少是运行时异常 那么无论更改该值都将失败
  • 为什么应该首选 Java 类的接口?

    PMD https pmd github io 将举报以下违规行为 ArrayList list new ArrayList 违规行为是 避免使用 ArrayList 等实现类型 而是使用接口 以下行将纠正违规行为 List list ne

随机推荐

  • 前端架构师

    岗位职责 1 负责云计算产品前端架构工作及产品开发规划工作 2 维护及优化网站前端性能 优化前端开发模式和规范 3 根据产品人员提供的业务需求 探索并优化前端开发效果 4 探索并优化前端开发效率 代码质量 职位要求 1 对Node js A
  • node版本升级

    查看当前node的版本号 node v 查看npm工具版本 npm v 安装管理node的版本管理工具 n npm install g n 清理npm的cache npm cache clean f 更新到最新稳定版 n stable 修改
  • MySQL数据教程(一)数据库概念,超详细安装和配置数据库,数据库可视化界面介绍

    1 数据库基本概念 1 1什么是数据库 数据库 database 是用来组织 存储和管理数据的仓库 当今世界是一个充满着数据的互联网世界 充斥着大量的数据 数据的来源有很多 比如出行记录 消费记录 浏览的网页 发送的消息等等 除了文本类型的
  • vos安装好后java环境未找到

    首先安装jdk 然后用电脑管家修复下 转载于 https www cnblogs com flyoung p 9400295 html
  • 大数据学习之Zookeeper——01Zookeeper简单介绍

    转载 https www cnblogs com sunddenly p 4033574 html 一 分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术 分布式协调技术 那么什么是分布式协调技术 那么我来告诉大家 其
  • ssm项目(商城管理系统)-- 完整

    搭建SSM项目 1 新建Maven工程 添加Web模板 2 配置 pom xml文件 2 1 集中定义全局变量 依赖版本号 方便管理版本 2 2 依赖 2 3 插件 2 4 识别配置文件 3 添加配置文件 3 1 数据库连接信息jdbc p
  • Visual Studio注释快捷键

    VS注释快捷键操作 注释 先CTRL K 然后CTRL C 取消注释 先CTRL K 然后CTRL U
  • 我的世界启动器怎么更改java_我的世界启动器Java路径怎么设置?

    本文是历趣手游专区小编为诸位我的世界PC端玩家带来的我的世界启动器Java路径如何设置攻略 希望诸位我的世界玩家会喜欢 我的世界java路径设置攻略 1 首先我们要确保电脑中已经下载并安装好了最新的java 如果没有的话 我们直接在网上搜索
  • 计算机设备问题代码43,win10系统提示由于该设备有问题windows已将其停止(代码43)的修复方案...

    有关win10系统提示由于该设备有问题windows已将其停止 代码43 的操作方法想必大家有所耳闻 但是能够对win10系统提示由于该设备有问题windows已将其停止 代码43 进行实际操作的人却不多 其实解决win10系统提示由于该设
  • jmeter及jdk的环境变量配置

    jmeter是apache公司基于java开发的一款开源压力测试工具 其内部原理都是源于java的运行 并支持多种外部插件用于接口及性能测试 最主要的还是开源免费 在安装jmeter前必须配置jdk环境 jdk下载地址 https www
  • vsCode中conda activate失败的解决办法

    首先贴上报错信息 无法加载文件 C Users 13623 Documents WindowsPowerShell profile ps1 因为在此系统上禁止运行脚本 CommandNotFoundError Your shell has
  • git网址访问加载超时速度慢

    git来重置密码 再点击git网站无法打开怎么解决 首先我们应该要明白gitl本身访问就比较慢 所以我们需要登录时候需要借用github但有时候会出现访问速度特别慢的情况因此咱们需要修改配置 借用最新的ip地址来自增强访问github网站的
  • Android系统中数据库应用

    1 设置策略中的数据库 frameworks base packages SettingsProvider src com android providers settings DatabaseHelper java 2 sqlite3操作
  • 【Firefly入门教程】firefly、MySQL和Memcached共同使用

    coding utf8 firefly MySQL和Memcached共同使用 from firefly dbentrust dbpool import dbpool from firefly dbentrust memclient imp
  • 1116:打印零与奇偶数

    题目描述 假设有这么一个类 class ZeroEvenOdd public ZeroEvenOdd int n 构造函数 public void zero printNumber 仅打印出 0 public void even print
  • 什么是文件服务器

    文件服务器是一种器件 它的功能就是向服务器提供文件 在计算机局域网中 以文件数据共享为目标 需要将供多台计算机共享的文件存放于一台计算机中 这台计算机就被称为文件服务器 文件服务器具有分时系统管理的全部功能 能够对全网统一管理 能够提供网络
  • 自己如何重装系统_重装系统方法汇总

    系统崩溃或者蓝屏后 只能重装系统才能解决问题 电脑安装系统方法很多 除费时麻烦现在很少应用的完全安装方法外 常用克隆安装 其方法又分为 硬盘安装 适用于进行过系统备份的熟练用户 U盘安装 适用于有一定电脑操作能力的基础用户 和光盘安装 适用
  • HuggingFace学习3:加载预训练模型完成机器翻译(中译英)任务

    加载模型页面为 https huggingface co liam168 trans opus mt zh en 文章目录 整理文件 跑通程序 测试预训练模型 拆解Pipeline 逐步进行翻译任务 整理文件 首先下载模型所需的全部文件 h
  • 手动搭建python环境

    手动安装python3 9 1 wget https www python org ftp python 3 9 1 Python 3 9 1 tgz tar xf Python 3 9 1 tgz cd Python 3 9 1 sudo
  • 试题 算法提高 拦截导弹

    资源限制 内存限制 256 0MB C C 时间限制 1 0s Java时间限制 3 0s Python时间限制 5 0s 问题描述 某国为了防御敌国的导弹袭击 发展出一种导弹拦截系统 但是这种导弹拦截系统有一个缺陷 虽然它的第一发炮弹能够