当前位置: 首页 > news >正文

蓝桥杯刷题——day8

蓝桥杯刷题——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]);}
}

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

相关文章:

蓝桥杯刷题——day8

蓝桥杯刷题——day8 题目一题干解题思路代码 题目二题干解题思路代码 题目一 题干 N 架飞机准备降落到某个只有一条跑道的机场。其中第i架飞机在 Ti时刻到达机场上空&#xff0c;到达时它的剩余油料还可以继续盘旋 Di个单位时间&#xff0c;即它最早可以于 Ti时刻开始降落&am…...

如何使用 WebAssembly 扩展后端应用

1. WebAssembly 简介 随着互联网的发展&#xff0c;越来越多的应用借助 Javascript 转到了 Web 端&#xff0c;但人们也发现&#xff0c;随着移动互联网的兴起&#xff0c;需要把大量的应用迁移到手机端&#xff0c;随着手端的应用逻辑越来越复杂&#xff0c;Javascript 的解析…...

BaseCTF_web_week3

复读机 输入的东西会在下方显示出来&#xff0c;wp说是简单的SSTI&#xff0c;这里来学习一下SSTI SSTI模板注入 根据My4n师傅的《超详细SSTI模板注入漏洞原理讲解_ssti注入-CSDN博客》写的 用户的输入返回时会经过一个模板渲染&#xff0c;SSTI漏洞就是用户插入了可以破坏模板…...

模型数据算法概论

模型数据算法是一类使用数据来构建、优化或训练数学模型的算法&#xff0c;常用于数据科学、机器学习和人工智能领域。它们的核心目标是从数据中提取模式或关系&#xff0c;以便在预测、分类或优化任务中应用。以下是一个简要的概述&#xff1a; 1. 模型 模型是用来描述数据特…...

什么是3DEXPERIENCE SOLIDWORKS,它有哪些角色和功能?

将业界领先的 SOLIDWORKS 3D CAD 解决方案连接到基于单一云端产品开发环境 3DEXPERIENCE 平台。您的团队、数据和流程全部连接到一个平台进行高效的协作工作&#xff0c;从而能快速的做出更好的决策。 目 录&#xff1a; ★ 1 什么是3DEXPERIENCE SOLIDWORKS ★ 2 3DEXPERIE…...

Sigrity System SI Parallel Bus Analysis模式进行DDR3仿真分析-传输线模型

Sigrity System SI Parallel Bus Analysis模式进行DDR3仿真分析-传输线模型 Sigrity System SI Parallel Bus Analysis模式提供了简易的已搭建好的模板,方便用户直接在模板上替换数据文件进行仿真分析,下面介绍pba_simple_em模板的使用,具体操作如下 双击启动System SI启动界…...

MacOS下PostIn安装配置指南

PostIn是一款开源免费的接口管理工具&#xff0c; 下面介绍私有部署版本的MacOS下安装与配置。私有部署版本更适合有严格数据安全要求的企业&#xff0c;实现对数据和系统的完全控制。 &#xfeff; &#xfeff; 1、MacOS服务端安装 Mac安装包下载地址&#xff1a;下载Mac安…...

【Leetcode 每日一题】2545. 根据第 K 场考试的分数排序

问题背景 班里有 m m m 位学生&#xff0c;共计划组织 n n n 场考试。给你一个下标从 0 0 0 开始、大小为 m n m \times n mn 的整数矩阵 s c o r e score score&#xff0c;其中每一行对应一位学生&#xff0c;而 s c o r e [ i ] [ j ] score[i][j] score[i][j] 表示…...

一文速通 IIC I2C子系统驱动 通信协议原理 硬件 时序 深度剖析

本文作为一个引入&#xff0c;作用是让读者理解熟知IIC协议关键内容&#xff0c;结合实际手册内容&#xff0c;深度解析协议本质&#xff0c;作为后续嵌入式linux驱动IIC子系统的一个铺垫。 目录 1. 硬件连接 2. IIC传输时序 2.1.写操作 2.2.读操作 2.3.I2C信号 3.IIC协议…...

HarmonyOS(72)事件拦截处理详解

事件拦截 1、参考资料2、HitTestMode3、onTouchIntercept、onTouch、onClick事件执行顺序3.1、系统默认事件传递顺序3.2、子组件拦截事件1、参考资料 HarmonyOS(71) 自定义事件分发之TouchTestStrategy使用说明HarmonyOS(70) ArkUI 事件分发拦截,事件冲突解决方案HitTestModea…...

docker(wsl)命令 帮助文档

WSL wsl使用教程 wsl -l -v 列出所有已安装的 Linux 发行版 wsl -t Ubuntu-22.04 --shutdown 关闭所有正在运行的WSL发行版。如果你只想关闭特定的发行版 wsl -d Ubuntu-22.04 登录到Ubuntu环境 wsl --list --running 查看正在wsl中运行的linux发行版 wsl --unregister (系统名…...

nginx 拦截指定ip访问指定 url

nginx 拦截指定ip访问指定 url 这里需要注意的是一定要用$http_x_forwarded_for 这个变量 upstream myapp1 { # 定义一个名为myapp1的服务器组 server backend1.example.com weight5; # 添加一个服务器&#xff0c;并设置权重为5 server backend2.example.com; # 添加另…...

git仓库的基本概念和流程以及一些基本命令

什么是版本库&#xff1f;版本库又名仓库&#xff0c;英文名repository,你可以简单的理解一个目录&#xff0c;这个目录里面的所有文件都可以被Git管理起来&#xff0c;每个文件的修改&#xff0c;删除&#xff0c;Git都能跟踪&#xff0c;以便任何时刻都可以追踪历史&#xff…...

Intel-ECI之Codesys PLC + Ethercat 远端IO + Codesys IDE编程

目录 一、 准备工作 二、安装Codesys 软件 PLC 三、 使用Codesys IDE 编程测试 CODESYS* 是领先的独立于制造商的 IEC 61131-3 自动化软件&#xff0c;适用于工程控制系统。它用于 Intel Edge Controls for Industrial&#xff08;Intel ECI 或 ECI&#xff09;&#xff0c;…...

互联网医院系统,互联网医院系统源码可供

互联网医院系统开发&#xff0c;其功能特点和优势在于实现了线上医疗服务与信息技术的深度融合。此系统旨在构建一个更为高效、便捷的医疗服务平台&#xff0c;提升患者的就医体验和医疗服务的效率。 一、功能特点 1、预约挂号与在线咨询 患者可通过系统进行预约挂号&#xf…...

Marin说PCB之POC电路layout设计仿真案例---06

我们书接上回啊&#xff0c;对于上面的出现原因我这个美女同事安娜说会不会你把POC电感下面的相邻两层的CUT_OUT的尺寸再去加大一些会不会变得更好呢&#xff1f;这个难道说是真的有用吗&#xff1f;小编我先自己算一卦看下结果。 本期文章我们就接着验证通过改善我们的单板POC…...

windwos defender实现白名单效果(除了指定应用或端口其它一律禁止)禁止服务器上网

一、应用场景说明 当我们的一台windows服务器中毒&#xff0c;变成别人肉鸡&#xff0c;不断向外请示非法网站或攻击其它服务器。 要彻底清除相关木马或病毒往往需要的时间比较长&#xff0c;比较有效的方法是禁止服务器主动向外发包除了网站端口和远程程序除外。 其实这就是一…...

Fiddler勾选https后google浏览器网页访问不可用

一、说明 最近电脑重新安装系统后&#xff0c;之前的所有工具都需要重新安装和配置&#xff0c;有个项目需要抓包https包查看一下请求的内容&#xff0c;通过Fiddler工具&#xff0c;但是开启后&#xff0c;发现https的无法抓取&#xff0c;同时google浏览器也不无法访问互联网…...

机器视觉检测相机基础知识 | 颜色 | 光源 | 镜头 | 分辨率 / 精度 / 公差

注&#xff1a;本文为 “keyence 视觉沙龙中机器视觉检测基础知识” 文章合辑。 机器视觉检测基础知识&#xff08;一&#xff09;颜色篇 视觉检测硬件构成的基本部分包括&#xff1a;处理器、相机、镜头、光源。 其中&#xff0c;和光源相关的最重要的两个参数就是光源颜色和…...

解决pytorch安装中的三个错误

查明已安装python版本为3.12.7后&#xff0c;创建虚拟环境。 报错内容&#xff1a;ArgumentError: one of the arguments -n/–name -p/–prefix is required 解决方式&#xff1a; 输入 conda create -n pytorch python3.8即可安装成功。 参考文章&#xff1a;https://blo…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...