蓝桥杯刷题——day8

news2025/3/1 10:04:46

蓝桥杯刷题——day8

  • 题目一
    • 题干
    • 解题思路
    • 代码
  • 题目二
    • 题干
    • 解题思路
    • 代码

题目一

题干

N 架飞机准备降落到某个只有一条跑道的机场。其中第i架飞机在 Ti时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 Di个单位时间,即它最早可以于 Ti时刻开始降落,最晩可以于 Ti+Di时刻开始降落。降落过程需要 Li个单位时间。一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落,但是不能在前一架飞机完成降落前开始降落。请你判断N架飞机是否可以全部安全降落。
输入: 包含多组数据。第一行包含一个整数T,代表测试数据的组数。对于每组数据,第一行包含一个整数N。以下N行,每行包含三个整数Ti,Di,Li。
输出: 对于每组数据,输出 YES 或者 NO,代表是否可以全部安全降落。
示例一:

输入:
2
3
0 100 10
10 10 10
0 2 20
3
0 10 20
10 10 20
20 10 20
输出:
YES
NO

题目链接: 飞机降落

解题思路

这条题目我并没有完全通过,所以我只是将我的思路说一下,如果发现问题欢迎私信或者评论。首先我们创建一个新的类Plane,这个类记录了飞机到达时间T,飞机最多可以盘旋的时间D,以及飞机降落所需的时间T,然后创建一个ArrayList,用ArrayList依次接受我们输入的Plane,然后将ArrayList进行排序,排序的准则是先处理最“紧急”的飞机,即最晚开始降落时间 T + D 较早的飞机,能尽量确保这些紧急飞机降落成功。然后创建一个变量:currentTime,这个变量表示:记录跑道的当前空闲时间,也就是当前跑道可以开始接纳下一架飞机的时间。然后依次将排序好的Plane的T和currentTime进行对比,如果跑道空闲时间(currentTime)早于飞机的到达时间(T),说明跑道已经空闲,但这架飞机还没有到达。在这种情况下,跑道必须等待飞机到达,因此需要将currentTime更新为飞机的到达时间 plane.T,如果跑道空闲时间大于等于飞机的到达时间,说明跑道空闲时间和飞机到达时间之间没有冲突。此时,跑道可以直接安排飞机降落。这时候我们要判断跑道的当前空闲时间是否超过飞机允许的最晚降落时间,如果超过则返回false,然后更新currentTime:currentTime = plane.L + currentTime ,如果遍历完整个链表后,都没有返回false,那么返回true。下面是完整代码:

代码

import java.util.ArrayList;
import java.util.Scanner;

class Plane {
    int T; // 飞机到达时间
    int D; // 飞机最多可以盘旋的时间
    int L; // 飞机降落所需的时间

    public Plane(int t, int d, int l) {
        T = t;
        D = d;
        L = l;
    }
}

public class Main {
    public static boolean Plane_isLanding(ArrayList<Plane> list) {
        int size = list.size();
        int currentTime = 0; // 跑道当前的空闲时间

        list.sort((a, b) -> (a.T + a.D) - (b.T + b.D)); // 按照飞机最晚降落开始时间排序

        for (Plane plane : list) {
            if (currentTime < plane.T) {
                currentTime = plane.T; // 如果跑道空闲时间早于飞机到达时间,更新为飞机到达时间
            }

            if (currentTime > plane.T + plane.D) {
                return false; // 如果当前时间超过飞机允许的最晚降落时间,返回 false
            }

            currentTime += plane.L; // 更新跑道空闲时间,表示当前飞机完成降落后跑道的空闲时间
        }

        return true; // 所有飞机都可以安全降落,返回 true
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt(); // 读取测试数据组数
        while (n > 0) {
            ArrayList<Plane> list = new ArrayList<>();
            int num = scanner.nextInt(); // 每组数据中的飞机数量
            while (num > 0) {
                int t = scanner.nextInt(); // 飞机到达时间
                int d = scanner.nextInt(); // 飞机盘旋的最大时间
                int l = scanner.nextInt(); // 飞机降落所需时间
                list.add(new Plane(t, d, l)); // 添加飞机信息到列表
                num--;
            }

            if (Plane_isLanding(list)) {
                System.out.println("YES"); // 如果所有飞机可以安全降落,输出 "YES"
            } else {
                System.out.println("NO"); // 如果无法满足条件,输出 "NO"
            }

            n--;
        }
        scanner.close(); // 关闭输入流
    }
}

题目二

题干

一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位……)上的数字是奇数,偶数位(十位、千位、十万位……)上的数字是偶数,我们就称之为“好数”。
输入: 给定一个正整数N,请计算从1到N一共有多少个好数。
输出: 一个整数代表答案。
示例一:

输入:
24
输出:
7
解释:
24 以内的好数有 1,3,5,7,9,21,23,一共7个。

示例二:

输入:
2024
输出:
150

题目链接: 好数

解题思路

这条题目相对来说比较简单,用动态规划就可以轻易解决了,我们定义数组dp[i]表示在1到i一共有dp[i]个好数,那么dp[i+1]就可以表示成:
在这里插入图片描述
那么问题又变成了如何判断一个数是否是好数,题目说从低位到高位的顺序,奇数位上的数字是奇数,偶数位上的数字是偶数,那么我们可以设置一个布尔类型的flag,这个flag用于判断此位置是奇数位还是偶数位(不是判断奇偶数哟,例:个位是奇数位,十位是偶数位),同时在将该位置上的数字拿到(对10进行取余就可以了),然后判断该位置是否满足”好数“的标准就可以了,下面是完整代码:

代码

import java.util.Scanner;
public class Main {
    public static boolean is_good_number(int i) {
        boolean flag = true;
        while (i > 0) {
            int remaining = i % 10;
            if (flag && (remaining % 2 != 0)){
                flag = false;
            } else if (!flag &&(remaining % 2 == 0)){
                flag = true;
            }else {
                break;
            }
            i = i/10;
        }
        return i == 0;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        int[] dp = new int[num + 1];
        dp[1] = 1;
        for (int i = 2; i <= num; i++) {
            if (is_good_number(i)){
                dp[i] = dp[i - 1] + 1;
            }else {
                dp[i] = dp[i-1];
            }
        }
        System.out.println(dp[num]);
    }
}

如果这篇博客对你有帮助,别忘了点赞+收藏哦,如果有任何的问题或者意见,欢迎评论和私信,谢谢各位!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2263791.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据-256 离线数仓 - Atlas 数据仓库元数据管理 正式安装 启动服务访问 Hive血缘关系导入

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…

Mysql中的排序与分页

1. 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC&#xff08;ascend&#xff09;: 升序 DESC&#xff08;descend&#xff09;:降序 ORDER BY 子句在SELECT语句的结尾。 1.2 单列排序 1.3 多列排序 可以使用不在SELECT列表中的列排序。 在对多列进行排序的时候&a…

CS!GO

CS&#xff08;computer science&#xff09;计算机科学&#xff0c;说实话&#xff0c;不是找工作面试&#xff0c;这些题谁会背啊&#xff0c;反正我不行&#xff0c;一问三不知。 咱也不管这些&#xff0c;这个系列&#xff0c;可能会时不时的给出一些计网和操作系统相关的东…

【MAC】深入浅出 Homebrew 下 Nginx 的安装与配置指南

硬件&#xff1a;Apple M4 Pro 16寸 系统&#xff1a; macos Sonoma 15.1.1 Nginx 是一款高性能的 Web 服务器和反向代理服务器&#xff0c;广泛应用于全球各地的网站和企业应用中。本文将详细介绍如何在 macOS 环境下使用 Homebrew 安装、启动、管理以及优化配置 Nginx&#x…

flutter --no-color pub get 超时解决方法

新建Flutter项目后&#xff0c;运行报错&#xff0c;需要执行pub get 点击Run ‘flutter pub get’ … … … 卡着&#xff0c;不动了&#xff0c;提示超时 是因为墙的问题 解决方案&#xff1a; 添加以下环境变量 变量名: PUB_HOSTED_URL 变量值: https://pub.flutter-io.cn …

【题解】【枚举】——[NOIP2018 普及组] 龙虎斗

【题解】【枚举】——[NOIP2018 普及组] 龙虎斗 [NOIP2018 普及组] 龙虎斗题目背景题目描述输入格式输出格式输入输出样例输入 #1输出 #1输入 #2输出 #2 提示 1.思路解析2.AC代码 [NOIP2018 普及组] 龙虎斗 通往洛谷的传送门 题目背景 NOIP2018 普及组 T2 题目描述 轩轩和…

记录仪方案_记录仪安卓主板定制_音视频记录仪PCBA定制开发

记录仪主板采用了强大的联发科MTK8768处理器&#xff0c;拥有出色的性能表现。它搭载了四个主频为2.0GHz的Cortex-A53核心与四个主频为1.5GHz的Cortex-A53核心&#xff0c;确保了高效的处理速度。此外&#xff0c;主板配备了4GB的RAM(可选8GB)&#xff0c;并且内置64GB的ROM(可…

数据集-目标检测系列 车牌检测识别 数据集 CCPD2019

车牌检测&识别 数据集 CCPD2019 DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 需要更多数据资源和技术解决方案&#xff0c;知识星球&#xff1a; “DataBall - X 数据球(free)” 贵在坚持&#xff01; 数据样…

Eclipse设置自动补全后 输入字符串类型变量后会自动追加String的解决方案

很简单&#xff0c;先打开eclipse&#xff0c;顶部找到window&#xff0c;点击preference 弹出一个设置窗口&#xff1b; 在窗口左侧选择Java>Editor>Content Assist&#xff1b;然后再右侧找到Disable insertion triggers except Enter 的选项&#xff08;禁用除Enter以…

uniApp上传文件踩坑日记

最近在做移动端app&#xff0c;开始接触uniapp。想着直接用PC端的前后端API去做文件上传&#xff0c;但是uniapp的底层把请求拆成了普通请求和文件上传请求&#xff0c;所以不能用一个axios去做所有请求的处理&#xff0c;拆成uni.request和uni.uploadFile去分别处理两种情况。…

Qt Quick:CheckBox 复选框

复选框不止选中和未选中2种状态哦&#xff0c;它还有1种部分选中的状态。这3种状态都是Qt自带的&#xff0c;如果想让复选框有部分选中这个状态&#xff0c;需要将三态属性&#xff08;tristate&#xff09;设为true。 未选中的状态值为0&#xff0c;部分选中是1&#xff0c;选…

Pytorch | 从零构建GoogleNet对CIFAR10进行分类

Pytorch | 从零构建GoogleNet对CIFAR10进行分类 CIFAR10数据集GoogleNet网络结构特点网络整体架构应用与影响Inceptionv1到Inceptionv2 GoogleNet结构代码详解结构代码代码详解Inception 类初始化方法前向传播 forward GoogleNet 类初始化方法前向传播 forward 训练过程和测试结…

PCIe_Host驱动分析_地址映射

往期内容 本文章相关专栏往期内容&#xff0c;PCI/PCIe子系统专栏&#xff1a; 嵌入式系统的内存访问和总线通信机制解析、PCI/PCIe引入 深入解析非桥PCI设备的访问和配置方法 PCI桥设备的访问方法、软件角度讲解PCIe设备的硬件结构 深入解析PCIe设备事务层与配置过程 PCIe的三…

jenkins 出现 Jenkins: 403 No valid crumb was included in the request

文章目录 前言解决方式:1.跨站请求为找保护勾选"代理兼容"2.全局变量或者节点上添加环境变量3.&#xff08;可选&#xff09;下载插件 the strict Crumb Issuer plugin4.重启 前言 jenkins运行时间长了&#xff0c;经常出现点了好几次才能构建&#xff0c;然后报了Je…

CentOS 7 安装、测试和部署FastDFS

目录 FastDFS环境搭建 安装 libfastcommon 库 安装FastDFS 查看编译后的文件 FastDFS配置 FastDFS启动 启动tracker服务 启动storage服务 查看storage是否已经注册到了tracker下 查看存储文件的目录 FastDFS重启 FastDFS关闭 使用fdfs_test进行测试 修改client.co…

【WRF教程第3.1期】预处理系统 WPS 详解:以4.5版本为例

预处理系统 WPS 详解&#xff1a;以4.5版本为例 每个 WPS 程序的功能程序1&#xff1a;geogrid程序2&#xff1a;ungrib程序3&#xff1a;metgrid WPS运行&#xff08;Running the WPS&#xff09;步骤1&#xff1a;Define model domains with geogrid步骤2&#xff1a;Extract…

Flutter组件————FloatingActionButton

FloatingActionButton 是Flutter中的一个组件&#xff0c;通常用于显示一个圆形的按钮&#xff0c;它悬浮在内容之上&#xff0c;旨在吸引用户的注意力&#xff0c;并代表屏幕上的主要动作。这种按钮是Material Design的一部分&#xff0c;通常放置在页面的右下角&#xff0c;但…

在Windows11上编译C#的实现Mono的步骤

在Windows11上编译Mono的步骤 1、 在win11打开开发者模式,在更新和安全选项里,如下图: 2、下载并安装64位的cygwin, 下载网站:www.cygwin.com 3、 安装 Visual Studio 2015 or later 的社区版本。 4、 下载Mono的windows最新版本。 5、 在cmd.exe里运行下面的命令来安…

[HNCTF 2022 Week1]你想学密码吗?

下载附件用记事本打开 把这些代码放在pytho中 # encode utf-8 # python3 # pycryptodemo 3.12.0import Crypto.PublicKey as pk from hashlib import md5 from functools import reducea sum([len(str(i)) for i in pk.__dict__]) funcs list(pk.__dict__.keys()) b reduc…

【记录50】uniapp安装uview插件,样式引入失败分析及解决

SassError: Undefined variable: "$u-border-color". 表示样式变量$u-border-color没定义&#xff0c;实际是定义的 首先确保安装了scss/sass 其次&#xff0c;根目录下 app.vue中是否全局引入 <style lang"scss">import /uni_modules/uview-ui/in…