2022年第十三届蓝桥杯比赛Java B组 【全部真题答案解析-第二部分】

 上一篇文章:2022年第十三届蓝桥杯比赛Java B组 【全部真题答案解析-第一部分】_尘封的CPU的博客-CSDN博客最近回顾了Java B组的试题,深有感触:脑子长时间不用会锈住,很可怕。兄弟们,都给我从被窝里爬起来,赶紧开始卷!!!https://blog.csdn.net/kndjg/article/details/127696158?spm=1001.2014.3001.5502

继上一篇题目解析文章,本文分析G~J题,全部是编程题,欢迎兄弟们一起讨论;废话不多说,直接整活儿!

2022年第十三届蓝桥杯Java B组(第二部分 G~J题) 

32dce8b0b142472ab8ce04a91fbcbeae.jpg

试题 G: 数组切分 

 

时间限制: 1.0s
内存限制: 512.0MB
本题总分:20 分
【问题描述】
已知一个长度为 N 的数组: A1, A2, A3, ... A N 恰好是 1 ∼ N 的一个排列。现在要求你将 A 数组切分成若干个 (最少一个,最多 N 个) 连续的子数组,并且每个子数组中包含的整数恰好可以组成一段连续的自然数。
例如对于 A = {1, 3, 2, 4}, 一共有 5 种切分方法:
{1}{3}{2}{4}:每个单独的数显然是 (长度为 1 的) 一段连续的自然数。
{1}{3, 2}{4}:{3, 2} 包含 2 到 3,是 一段连续的自然数,另外 {1} 和 {4} 显然
也是。
{1}{3, 2, 4}:{3, 2, 4} 包含 2 到 4,是 一段连续的自然数,另外 {1} 显然也是。
{1, 3, 2}{4}:{1, 3, 2} 包含 1 到 3,是 一段连续的自然数,另外 {4} 显然也是。
{1, 3, 2, 4}:只有一个子数组,包含 1 到 4,是 一段连续的自然数。
【输入格式】
第一行包含一个整数 N。第二行包含 N 个整数,代表 A 数组。
【输出格式】
输出一个整数表示答案。由于答案可能很大,所以输出其对 1000000007 取
模后的值
【样例输入】
4
1 3 2 4
【样例输出】
5
【评测用例规模与约定】
对于 30% 评测用例,1 ≤ N ≤ 20.
对于 100% 评测用例,1 ≤ N ≤ 10000.

思路与题解 

 

// 代码

 

试题 H: 回忆迷宫

 

时间限制: 1.0s
内存限制: 512.0MB
本题总分:20 分
【问题描述】
爱丽丝刚从一处地下迷宫中探险归来,你能根据她对于自己行动路径的回
忆,帮她画出迷宫地图吗?
迷宫地图是基于二维网格的。爱丽丝会告诉你一系列她在迷宫中的移动步
骤,每个移动步骤可能是上下左右四个方向中的一种,表示爱丽丝往这个方向
走了一格。你需要根据这些移动步骤给出一个迷宫地图,并满足以下条件:
1、爱丽丝能在迷宫内的某个空地开始,顺利的走完她回忆的所有移动步
骤。
2、迷宫内不存在爱丽丝没有走过的空地。
3、迷宫是封闭的,即可通过墙分隔迷宫内与迷宫外。任意方向的无穷远处
视为迷宫外,所有不与迷宫外联通的空地都视为是迷宫内。(迷宫地图为四联
通,即只有上下左右视为联通)
4、在满足前面三点的前提下,迷宫的墙的数量要尽可能少。
【输入格式】
第一行一个正整数 N,表示爱丽丝回忆的步骤数量。
接下来一行 N 个英文字符,仅包含 UDLR 四种字符,分别表示上(Up)、
下(Down)、左(Left)、右(Right)。
【输出格式】
请通过字符画的形式输出迷宫地图。迷宫地图可能包含许多行,用字符 ‘*’
表示墙,用 ‘ ’(空格)表示非墙。
你的输出需要保证以下条件:
1、至少有一行第一个字符为 ‘*’。
2、第一行至少有一个字符为 ‘*’。
3、每一行的最后一个字符为 ‘*’。
4、最后一行至少有一个字符为 ‘*’。
【样例输入】
17
UUUULLLLDDDDRRRRU
【样例输出】
*****
*      *
* *** *
* *** *
* *** *
*      *
*****
【样例说明】
爱丽丝可以把第六行第六个字符作为起点。
外墙墙墙墙墙外
墙内内内内内墙
墙内墙墙墙内墙
墙内墙墙墙内墙
墙内墙墙墙内墙
墙内内内内内墙
外墙墙墙墙墙外
【评测用例规模与约定】
对于所有数据,0 < N ≤ 100.

思路与题解 

    本题只是涉及二维数组的边界问题。
     首先声明一个二维数组,0表示墙 1表示非墙,爱丽丝默认在数组的中间位置,定义上下左右四个边界在原点四周,表示迷宫(数组)的打印范围;
     遍历字符串每一个字符,每读取一个字符改变一次爱丽丝的位置(x,y),并将当前位置的数组元素值置1,当坐标(x,y)与边界重合时,相应的边界向外围方向扩张1格;
     最终根据四个边界值打印迷宫图形,0表示*,1表示空格。

public static void Java_B_H() {Scanner scanner = new Scanner(System.in);int len = scanner.nextInt();String route = scanner.next();int arr[][] = new int[200][200];int x = 99, y = 99;arr[x][y] = 1;int left = x - 1, right = x + 1, up = y - 1, down = y + 1;for (int i = 0; i < len; i++) {char ch = route.charAt(i);switch (ch) {case 'U':y -= 1;if (y == up)up--;break;case 'D':y += 1;if (y == down)down++;break;case 'L':x -= 1;if (x == left)left--;break;case 'R':x += 1;if (x == right)right++;break;default:System.out.println("输入有误,程序中断!");return;}arr[x][y] = 1;}arr[left][up] = 1;arr[left][down] = 1;arr[right][up] = 1;arr[right][down] = 1;for (int j = up; j <= down; j++) {for (int i = left; i <= right; i++) {if (arr[i][j] == 1)System.out.print(" ");elseSystem.out.print("*");}System.out.println();}}

 

试题 I: 红绿灯

 

时间限制: 1.0s
内存限制: 512.0MB
本题总分:25 分
【问题描述】
爱丽丝要开车去上班,上班的路上有许多红绿灯,这让爱丽丝很难过。为 了上班不迟到,她给自己的车安装了氮气喷射装置。现在她想知道自己上班最短需要多少时间。爱丽丝的车最高速度是 1/V 米每秒,并且经过改装后,可以瞬间加速到小于等于最高速的任意速度,也可以瞬间停止。爱丽丝家离公司有 N 米远,路上有 M 个红绿灯,第 i 个红绿灯位于离爱丽丝家 A i 米远的位置,绿灯持续 B i 秒,红灯持续 C i 秒。在初始时(爱丽丝开始计时的瞬间),所有红绿灯都恰好从红灯变为绿灯。如果爱丽丝在绿灯变红的瞬间到达红绿灯,她会停下车等红灯,因为她是遵纪守法的好市民。氮气喷射装置可以让爱丽丝的车瞬间加速到超光速(且不受相对论效应的影响!),达到瞬移的效果,但是爱丽丝是遵纪守法的好市民,在每个红绿灯前她都会停下氮气喷射,即使是绿灯,因为红绿灯处有斑马线,而使用氮气喷射装置通过斑马线是违法的。此外,氮气喷射装置不能连续启动,需要一定时间的冷却,表现为通过 K 个红绿灯后才能再次使用。(也就是说,如果 K = 1,就能一直使用啦!)初始时,氮气喷射装置处于可用状态。
【输入格式】
第一行四个正整数 NMKV,含义如题面所述。
接下来 M 行,每行三个正整数 A iB iC i,含义如题面所述。
【输出格式】
输出一个正整数 T,表示爱丽丝到达公司最短需要多少秒。
【样例输入】
90 2 2 2
30 20 20
60 20 20
【样例输出】
80
【样例说明】
爱丽丝在最开始直接使用氮气喷射装置瞬间到达第一个红绿灯,然后绿灯
通过,以最高速行进 60 秒后到达第二个红绿灯,此时绿灯刚好变红,于是她等
待 20 秒再次变为绿灯后通过该红绿灯,此时氮气喷射装置冷却完毕,爱丽丝再
次使用瞬间到达公司,总共用时 80 秒。
【评测用例规模与约定】
对于 30% 的数据, N ≤ 100; M ≤ 10; M < K; V = 1.
对于 60% 的数据, N ≤ 1000; M ≤ 100; K ≤ 50; B i, C i ≤ 100; V ≤ 10.
对于 100% 的数据,0 < N ≤ 108; M ≤ 1000; K ≤ 1000; 0 < B i, C i ≤ 106 ; 0 <
V ≤ 106 ; 0 < A i < N; 对任意 i < j, 有 A i < A j.

思路与题解 

   根据m个红绿灯把路程分为m+1段 一段路: _________!(感叹号为红绿灯) 
    经过每一段路需要的时间:赶路时间+等红绿灯时间
    用氮气则赶路时间为0,绿灯则等红绿灯时间为0 深度搜索遍历

static int n;// 距离static int m;// 红灯数static int k;// 氮气就绪次数static int v;// 速度static int[] av = null;// 经过该红绿灯所需时间a*vstatic int[] b = null;// 绿灯持续时间static int[] c = null;// 红灯持续时间static int minTime = 999999999;public static void Java_B_I() {// 入口方法Scanner scan = new Scanner(System.in);n = scan.nextInt();m = scan.nextInt();k = scan.nextInt();v = scan.nextInt();// System.out.println(""+n+m+k+v);av = new int[m + 1];// 共m+1段路b = new int[m + 1];c = new int[m + 1];int s = 0;for (int i = 0; i < m; i++) {int a1 = scan.nextInt();int a2 = scan.nextInt();int a3 = scan.nextInt();av[i] = (a1 - s) * v;s += a1;b[i] = a2;c[i] = a3;}if (s < n) {av[m] = (n - s) * v;b[m] = -1;c[m] = -1;}run(0, 0, 0);System.out.println(minTime);}public static int abc(int p, int newTime) {int wait = 0;wait = (newTime) % (b[p] + c[p]);if (wait < b[p]) {// 绿灯,冲return 0;} else {return b[p] + c[p] - wait;// 返回等红灯时间}}public static int run(int p, int kk, int newTime) {if (p == m) {// 最后一段路没红绿灯if (kk > 0) {// 没有氮气自己爬newTime += av[m];}if (minTime > newTime) {minTime = newTime;// 提交成功结果}return 1;} else {// 不是最后一段if (newTime >= minTime) {return 0;// 剪枝}if (kk == 0) {// 有氮气就冲kk = k - 1;// 缓冲氮气newTime += abc(p, newTime);// 等红灯run(p + 1, kk, newTime);} else {// 不用氮气可以爬捏if (kk > 0) {kk--;}newTime += av[p];// 爬过中间路段newTime += abc(p, newTime);// 等红灯run(p + 1, kk, newTime);}}return 0;}

 

 

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

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

相关文章

解决error Error: certificate has expired问题

安装环境遇到下面问题&#xff1a; 产生原因&#xff1a;可能是开了服务器代理访问导致ssl安全证书失效 解决办法&#xff1a; 在终端输入以下命令&#xff1a; yarn config set "strict-ssl" false -g

3ds Max导出fbx贴图问题简单记录

1.前言 工作中发现3ds Max导出的fbx在其它软件&#xff08;Autodesk viewer&#xff0c;blender&#xff0c;navisworks&#xff0c;FBXReview等&#xff09;中丢失了部分贴图&#xff0c;但导出的fbx用3ds Max打开却正常显示。 fbx格式使用范围较广&#xff0c;很多常见的三…

Milvus【部署 01】向量数据库Milvus在Linux环境下的在线+离线安装

向量数据库Milvus在Linux环境下的在线离线安装 1.千问简介2.在线安装2.离线安装 1.千问简介 Milvus 是一款专为处理高维向量数据设计的开源云原生数据库&#xff0c;旨在满足海量向量数据的实时召回需求。它由 Zilliz 公司开发并维护&#xff0c;基于Apache许可证2.0版本发布。…

ASUS华硕A豆14笔记本电脑I421EAYB,I421EQYB_ADOL14EA工厂模式原厂Win11系统安装包下载

适用型号&#xff1a;ADOL14EA笔记本I421EAYB、I421EQYB 链接&#xff1a;https://pan.baidu.com/s/1krU8m_lbApyUfZQo5E4cCQ?pwd0ewl 提取码&#xff1a;0ewl 华硕原装WIN11系统工厂安装包&#xff0c;带有MyASUS WinRE RECOVERY恢复功能、自带所有驱动、出厂主题壁纸、系…

Linux上安装JDK,Java起飞,开启编程之旅

在Linux环境下搭建Java开发平台&#xff0c;是许多开发者入门Java世界的第一步。Java的跨平台特性使得在Linux上安装JDK尤为重要&#xff0c;它不仅能为Linux开发者提供更广阔的应用场景&#xff0c;也是探索Java强大功能的起点。 接下来&#xff0c;让我们一起在Linux中完成J…

【SpringMVC】_SpringMVC实现留言墙

目录 1. 需求分析 2. 接口定义 2.1 提交留言 2.2 获取全部留言 3. 响应数据 4. 服务器代码 4.1 MessageInfo 文件 4.2 MessageController 文件 5. 前端页面代码 5. 运行测试 1. 需求分析 实现如下页面&#xff1a; 1、输入留言信息&#xff0c;点击提交后&#xff0…

使用腾讯云服务器从0搭建个人网站,超简单图文教程

使用腾讯云服务器搭建网站全流程&#xff0c;包括轻量应用服务器和云服务器CVM建站教程&#xff0c;轻量可以使用应用镜像一键建站&#xff0c;云服务器CVM可以通过安装宝塔面板的方式来搭建网站&#xff0c;腾讯云服务器网txyfwq.com整理使用腾讯云服务器建站教程&#xff0c;…

NPOI入门指南:轻松操作Excel文件的.NET库

目录 引言 一、NPOI概述 二、NPOI的主要用途 三、安装NPOI库 四、NPOI基本使用 六、性能优化和内存管理 七、常见问题与解决方案 八、结论 附录 引言 Excel文件作为数据处理的重要工具&#xff0c;广泛应用于各种场景。然而&#xff0c;在没有安装Microsoft Office的…

llama.cpp

https://github.com/echonoshy/cgft-llm 【大模型量化】- Llama.cpp轻量化模型部署及量化_哔哩哔哩_bilibili github.com/ggerganov/llama.cpp cd ~/code/llama.cpp/build_cuda/bin ./quantize --allow-requantize /root/autodl-tmp/models/Llama3-8B-Chinese-Chat-GGUF/Llama…

海尔智家:科技优秀是一种习惯

海尔智家&#xff1a;科技优秀是一种习惯 2024-06-28 15:19代锡海 6月24日&#xff0c;2023年度国家科学技术奖正式揭晓。海尔智家“温湿氧磁多维精准控制家用保鲜电器技术创新与产业化”项目荣获国家科学技术进步奖&#xff0c;成为家电行业唯一牵头获奖企业。 很多人说&…

分布式kettle调度管理平台简介

介绍 Kettle&#xff08;也称为Pentaho Data Integration&#xff09;是一款开源的ETL&#xff08;Extract, Transform, Load&#xff09;工具&#xff0c;由Pentaho&#xff08;现为Hitachi Vantara&#xff09;开发和维护。它提供了一套强大的数据集成和转换功能&#xff0c…

【C++】类、静态、枚举、重载、多态、继承、重写、虚函数

五、类 面向对象编程是一个巨大的编程范式。C中的类class就是基于对象的程序设计。 我们可以用类来定义一个新的类型&#xff0c;这些新类型就可以像内置类型一样使用。 内置类型颗粒度太太小&#xff0c;现实需求又非常复杂&#xff0c;这就需要我们把内置类型适度的进行拼搭…

源码学习:文件描述符

在进程描述学习中&#xff0c;扯到了max_fds&#xff0c;接着就联想到了日常运维中常见的ulimit参数、sysctl内核参数&#xff0c;原来以为max_fds与这些个关联性比较强&#xff0c;但经过一早上折腾以后&#xff0c;发现其实还是有一些差距的。但是在学习过程中&#xff0c;却…

【C++】数组、字符串

六、数组、字符串 讨论数组离不开指针&#xff0c;指针基本上就是数组的一切的基础&#xff0c;数组和指针的相关内容参考我的C系列博文&#xff1a;【C语言学习笔记】四、指针_通过变量名访问内存单元中的数据缺点-CSDN博客【C语言学习笔记】三、数组-CSDN博客 1、数组就是&…

数据结构03 链表的基本操作【C++数组模拟实现】

前言&#xff1a;本节内容主要了解链表的基本概念及特点&#xff0c;以及能够通过数组模拟学会链表的几种基本操作&#xff0c;下一节我们将通过STL模板完成链表操作&#xff0c;可以通过专栏进入查看下一节哦~ 目录 单链表及其特点 完整链表构成 完整链表简述 创建单链表 …

京东云备案流程图_云主机快速ICP备案_京东云服务器备案问题解答

京东云ICP备案流程&#xff0c;备案包括网站和APP备案&#xff0c;以及备案问题解答FAQ&#xff0c;阿腾云以京东云网站域名备案流程为例&#xff0c;先填写主办单位信息&#xff0c;选择网站备案或APP备案&#xff0c;申请授权码并验证&#xff0c;填写并上传主办单位详细信息…

光伏仿真软件是什么?都有哪些功能?

光伏仿真软件&#xff0c;作为现代光伏系统设计的重要工具&#xff0c;正日益受到设计师、工程师和决策者的青睐。它结合了物理学、工程学和计算机科学的原理&#xff0c;以数字化方式模拟光伏系统的运行&#xff0c;帮助用户预测和优化系统的性能。本文将详细探讨光伏仿真软件…

[Go 微服务] go-micro + consul 的使用

文章目录 1.go-micro 介绍2.go-micro 的主要功能3.go-micro 安装4.go-micro 的使用4.1 创建服务端4.2 配置服务端 consul4.3 生成客户端 5.goodsinfo 服务5.1 服务端开发5.2 客户端开发 1.go-micro 介绍 Go Micro是一个简化分布式开发 的微服务生态系统&#xff0c;该系统为开…

Java学习【IO流:深入理解与应用(上)】

Java学习【IO流&#xff1a;深入理解与应用&#xff08;上&#xff09;】 &#x1f343;1.IO流体系结构&#x1f343;2.FileOutputStream&#x1f341;2.1FileOutputStream写数据的三种方式&#x1f341;2.2换行和续写 &#x1f343;3.FileInputStream&#x1f341;3.1每次读取…

软考高项备考经验分享

高项备考经验分享 在备考被论文卡两次后&#xff0c;这次终于通过了高项&#xff0c;分不是很高&#xff0c;比较幸运&#xff0c;对这次考试做个总结与分享&#xff0c;希望对同学们有所帮助。 1、备考时间 首先备考时间上不建议拉的太长&#xff0c;每天坚持看书3~6个月时…