2022第十三届蓝桥杯国赛真题javaB组

2023-11-18

试题A: 重合次数

本题总分:5 分
【问题描述】 在同一天中,从上午6 点13 分22 秒到下午14 点36 分20 秒,钟表上的 分针和秒针一共重合了多少次? 注意时针、分针、秒针都围绕中心做匀速运动。
【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

这道题纯在纸上算的,502次,但是好像错了,关键就在于题目说时针、分针、秒针都围绕中心做匀速运动。那59分59秒的时候分针、秒针重合,0分0秒也重合,中间没有分开,不知道这两秒算1次还是2次,我是当2次计算结果是502。

试题B: 数数

本题总分:5 分
【问题描述】
任何一个大于1 的正整数都能被分解为若干个质数相乘,比如28 = 227
被分解为了三个质数相乘。请问在区间[2333333; 23333333] 中有多少个正整数可以被分解为12 个质数相乘?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

这道题起初代码是这样的,跑了3个半小时没跑出来,最后比赛结束了还在跑。。。

import java.util.Scanner;
public class Main1 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		// 2333333; 23333333
		int n = 0;
		for (int i = 2333333; i <= 23333333; i++) {
			if (a(i))
				n++;
		}
		System.out.println(n);
	}

	private static boolean a(int i) {
		int n = 0, m = 2;
		while (i != 1) {
			while (i % m == 0) {
				n++;
				if (n > 12)
					return false;
				i /= m;
			}
			m++;
		}
		if (i != 1)
			n++;
		return n == 12;
	}
}

然后受大佬启发,明白了一个数的质因数的平方必然小于这个数,如果分解质因数时质数平方已经大于这个数,那么这个数如果不是1就是他质因数中最后一个质数。
例如260分解质因数,首先会分解出两个2,260/2/2=65,再分解出一个5,剩余13,下一个是7,因为7^2大于13,所以13就是260的最后一个质数
所以再代码中a方法中while加上条件 m * m <= i 就可以变快很多。

private static boolean a(int i) {
	int n = 0, m = 2;
	while (i != 1 && m * m <= i) {
		while (i % m == 0) {
			n++;
			if (n > 12)
				return false;
			i /= m;
		}
		m++;
	}
	if (i != 1)
		n++;
	return n == 12;
}

试题C: 左移右移

时间限制: 3.0s 内存限制: 512.0MB 本题总分:10 分
【问题描述】
小蓝有一个长度为N 的数组,初始时从左到右依次是1;2; 3; : : : N。 之后小蓝对这个数组进行了M 次操作,每次操作可能是以下2 种之一:

  1. 左移x,即把x 移动到最左边。
  2. 右移x,即把x 移动到最右边。
    请你回答经过M 次操作之后,数组从左到右每个数是多少?
    【输入格式】
    第一行包含2 个整数,N 和M。 以下M 行每行一个操作,其中“L x”表示左移x,“R x”表示右移x。
    【输出格式】
    输出N 个数,代表操作后的数组。
    【样例输入】
    5 3
    L 3
    L 2
    R 1
    【样例输出】
    2 3 4 5 1
    【样例说明】
    样例中的数组变化如下:
    [1; 2; 3; 4; 5]
    [3; 1; 2; 4; 5]
    [2; 3; 1;4; 5]
    [2; 3; 4; 5; 1]
    【评测用例规模与约定】
    对于50% 的评测用例,1<=N; M <= 10000:
    对于100% 的评测用例,1 <= N; M <= 200000; 1 <= x <= N:

这道题用双向链表很好做,但是java中不熟悉如何继承linkedlist写一个查找到并删除,所以用了个数组模拟链表。因为n是小于等于20w的,所以假设20w个数全部左移或者全部右移,60w长度也够,题中开了70w,其实没有必要。
思路是从数组25w下标开始存放1-n,然后定义L、R索引,代表头尾指针,也就是数组当前用到了什么位置,如果某个数左移,将他原来下标位置值置为0(用于最后遍历输出),让L所在下标等于这个数,同时L–,右移同理,最终遍历L-R,输出不为0的数。

import java.util.Scanner;

public class Main3 {
	public static void main(String[] args) {
		int[] map = new int[700000];
		int l = 250000, r = 250000;
		Scanner sc = new Scanner(System.in);
		String s = sc.nextLine();
		String[] s1 = s.split(" ");
		int n = Integer.parseInt(s1[0]);
		int m = Integer.parseInt(s1[1]);
		for (int i = 1; i <= n; i++) {
			map[r++] = i;
		}

		String s2;
		int nn;
		for (int i = 0; i < m; i++) {
			s2 = sc.nextLine();
			String[] s3 = s2.split(" ");
			nn = Integer.parseInt(s3[1]);
			int j;
			for (j = l - 5; j <= r + 5; j++) {
				if (map[j] == nn) {
					break;
				}
			}
			if ("L".equals(s3[0])) {
				map[--l] = map[j];
				map[j] = 0;
			} else {
				map[r++] = map[j];
				map[j] = 0;
			}
		}
		boolean flag = true;
		for (int i = l - 5; i <= r + 5; i++) {
			if (map[i] != 0) {
				if (flag) {
					System.out.print(map[i]);
					flag = false;
				} else {
					System.out.print(" " + map[i]);
				}
			}
		}
	}
}

试题D: 窗口

时间限制: 3.0s 内存限制: 512.0MB 本题总分:10 分
【问题描述】
在平时使用电脑的过程中,经常会打开各种各样的窗口,各个窗口会在桌 面上重叠,并按照一定的层次关系显示。有的窗口能够看到全部内容,而有的窗口只能看到局部。 现在给定一组操作桌面窗口的过程序列,请你通过ASCII 艺术图来绘制最 后桌面的状态。 已知桌面的大小为N * M,即桌面高度为N 个像素,宽度为M 个像素, 其中左上角坐标为(0; 0),右下角坐标为(N - 1; M - 1)。
对于窗口的操作有如下5 种:

  1. new 操作- 打开一个新窗口 new [PID] [top] [left] [height] [width] 如:new 12 20 30 80 100 表示打开一个PID 为12 的窗口,窗口左上角的坐标为(20; 30),该窗口宽 度为100 个像素,高度为80
    个像素;新创建的窗口,其层级为顶层。
  2. move 操作- 移动一个窗口 move [PID] [vertical] [horizontal] 如: move 12 -5 10 表示将PID 为12 的窗口在垂直方向上移动
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022第十三届蓝桥杯国赛真题javaB组 的相关文章

  • Java 正则表达式 String.matches 工作不一致

    我有一个正则表达式来检查字符串是否是数字 该格式的千位分隔符是空格 小数分隔符是点 小数点后部分是可选的 问题是 在某些时候 String matches 函数会停止按预期工作 以前有效的方法现在不再有效了 例如 JUnit 代码 impo
  • 如何使用java按上次更新时间对SFTP文件进行排序?

    I am having a set of text files in my FTP server 我想阅读今天之前上传的所有文件 其中我必须打印最后三个上传文件的属性 名称 上传时间 大小 现在我将能够打印 FTP 服务器中存在的文件的名称
  • 如何更改 apache poi 生成的图表,使其不使用平滑线并将空单元格显示为间隙?

    我正在使用 POI 3 12 beta1 并拥有可创建包含多个数据集和图例中命名系列的折线图的代码 但是 poi 中折线图的默认设置会生成一条已在数据点上平滑的线 空值也被绘制为 0 但我们希望线条停在有空单元格的第一列 在 xlsx 文件
  • 如何从 WSL2 上的 ubuntu shell 设置 JAVA_HOME?

    我在 Windows 10 家庭版上安装了 WSL2 我想使用 Maven 我验证它在 Windows 上安装正确 在 Windows 终端的 ubuntu shell 中 我在我的 profile但它不会被设置 我运行这些命令来尝试设置
  • 将 BeanFactory 注入 Bean

    我想注入一个SpringBeanFactory到由同一个创建的 BeanBeanFactory有什么办法可以这样做吗 顺便说一句 我正在开发一个网络应用程序 如果没有 我知道我可以通过以下方式获得 BeanFactoryRequestCon
  • Java发送邮件出错

    我的代码是 File Name SendEmail java import java util import javax mail import javax mail internet import javax activation pub
  • 为什么我没有这个类,而它应该在 rt.jar 中?

    所以 我正在尝试在 java 中实现 LDAP 连接 这需要com sun jndi ldap LdapCtxFactory 贾芬德表明LdapCtxFactory应包含在rt jar 据我了解 这是java SDK的基础 Eclipse
  • Android ArrayList 的 IndexOutOfBoundsException [重复]

    这个问题在这里已经有答案了 我遇到了一个非常烦人的问题 一些代码抛出 IndexOutOfBoundsException 我真的不明白为什么 logcat 指向以下代码的 addTimetableItem 我们将对此进行更多解释 if so
  • playframework 全局设置 @Required 字段的自定义消息

    我正在寻求有关翻译 Play 框架 2 2 中的验证消息的帮助 我有必填字段 FE Required message To pole jest wymagane public String miesiac Required public S
  • 使用 pdfbox 1.8.8 进行视觉签名

    我正在尝试生成带有视觉签名和 pdfbox 的 PDF 我有两个流 似乎 pdfbox 只能处理文件 如果没有三个临时文件 我就无法使其工作 我可以看到从here https github com apache pdfbox blob b7
  • Juno - Java 构建路径 - 项目无法读取或不是有效的 ZIP 文件

    我收到此错误 说明 资源路径 位置类型 所需库的存档 项目 Home 中的 src Program java 无法读取或无效 ZIP 文件主页 构建路径 构建路径问题 是什么原因导致此错误以及如何修复它 请按照以下导航 Right Clic
  • 当点击 JButton 连接到服务器时,程序冻结

    我正在使用 Java 中的 TCP 进行简单的 1v1 私人聊天 目前 每当我使用 JButtons 时都会遇到问题 这是我第一次尝试使用 JButtons 和 ActionListeners 所以我不能 100 确定这里发生了什么 我有两
  • java中如何将字符串日期转换为时间戳?

    我想在java中将字符串日期转换为时间戳 我编写了以下编码 我声明 date1 的日期是 7 11 11 12 13 14 SimpleDateFormat datetimeFormatter1 new SimpleDateFormat y
  • 编写大 JSON 文件避免内存不足问题的最佳方法

    首先 请注意今天是我第一天GSON 我正在尝试使用编写 Json 文件GSON图书馆 我有几千个JsonObjects里面一个ArrayList 当写入 Json 文件时 它应该看起来与此类似 hash index 00102x05h06l
  • Spring休眠异常

    当我启动 SpringMVC 时 出现以下异常 Apr 28 2012 6 08 23 PM org apache catalina core AprLifecycleListener init INFO The APR based Apa
  • 如何在弹性搜索中生成多个布尔查询的查询

    我想使用 spring 框架在 elasticsearch 中动态生成多个布尔运算的查询 我在elasticsearch中的数据就像 masterID
  • Java 中的 lambda 目标类型和目标类型上下文是什么意思?

    我正在阅读 Herbert Schildt 的 Java 完整参考 中关于 lambda 的一章 其中有很多对 lambda 目标类型 和 目标类型上下文 的引用 函数式接口定义了目标类型的一个 拉姆达表达式 这里有一个关键点 只能使用 l
  • 对堆排序有一个直观的理解吗?

    在学校 我们目前正在学习 Java 排序算法 我的作业是堆排序 我读了书 试图尽可能多地了解 但似乎我无法理解这个概念 我并不是要求您为我编写一个 Java 程序 只要您能尽可能简单地向我解释堆排序的工作原理即可 是的 所以基本上你拿一个堆
  • Java多线程和安全发布[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 看完之后 Java并发实践 http jcip net and OSGI 实践 http neilbartlett name blog osgi
  • 将 GDCM 图像转换为 Java BufferedImage

    我正在使用 GDCM 读取 DICOM 图像 有没有一种简单的方法可以使用 GDCM 读取 dicom 文件 然后将其转换为 Java BufferedImage 到目前为止我有以下内容 String filename C test dcm

随机推荐

  • VS Code+Anaconda(国内源)配置python

    一 Anaconda的介绍 为何使用 优点 二 Anaconda下载和安装 三 VS Code下载及安装 四 Anaconda更换国内源 原因及操作方法 操作方法 具体操作方法 记得看上边优秀博客 五 TensorFlow环境 配置原因及优
  • equals底层

    Equals底层实现 这篇文章有抄两个博主的东西 请不要介意 学习最重要 主要怕你们什么时候删帖看不到 谢谢 在基础类型中都重写了equals方法 但是Object中的equals的方法如果不重写就没有意义 因为源代码中equals直接用
  • Equals和HashMap的重写

    一 首先 老铁们应该先了解API中的HashCode和equals解释 1 如果两个对象相同 即用equals比较返回true 那么它们的hashCode值一定要相同 2 如果两个对象的hashCode相同 它们并不一定相同 即用equal
  • 光敏传感器简介

    光敏传感器 1 简介 光敏传感器是最常见的传感器之一 它的种类繁多 主要有 光电管 光电倍增管 光敏电阻 光敏三极管 太阳能电池 红外线传感器 紫外线传感器 光纤式光电传感器 色彩传感器 CCD和CMOS图像传感器等 光传感器是目前产量最多
  • Spring boot按日切分nohup.out日志文件的方法

    过大的日志文件维护起来存在诸多问题 所以最好是能够按日或按大小切分日志文件 下面给大家带来了Spring boot按日切分spring boot的nohup out日志文件的方法 方法如下 1 安装cronolog 2 执行以下命令启动应用
  • 完美解决umi+ProLayout 部分菜单动态的问题

    项目中用到这个框架 当然是很好用且方便的 但是实际使用的时候发现项目中限制了一些自定义内容 踩了几个坑 记录一下 动态菜单调用接口异步 页面上显示空白 解决方案 将方法放在getInitialState中查询 存在initialState里
  • 线性回归算法--拟合正弦函数

    目录 步骤 代码实现 本博客参考书籍 scikit learn机器学习 常用算法原理及编程实战 本博客源码地址 码云 步骤 生成200个在 2 2
  • Jeesite权限处理,权限分配,根据不同的用户展示不同的信息,按钮权限等

    jeesite关于权限这方面的记录或者文章很少 看官方文档又看不懂 自己的业务又需要进行权限处理 怎么办 当然问大佬了 我就记录下我的解决办法 给jeesite权限方面的文章做点贡献 我先说下我的业务逻辑 我需要实现不同公司的人登陆后台 只
  • 相似矩阵反推标签

    Background 有监督的多模态检索 supervised multi modal retrieval 中 常用 label 构造相似矩阵 S 样本集 X x i
  • vue中组件之间传递数组

    let InFo JSON stringify arr localStorage setItem array InFo 通过 JSON stringify 将数组解析成字符串 let Info JSON parse localStorage
  • gcc -c -o编译过程

    gcc编译 分步处理 一 预处理 二 编译 三 汇编 四 链接 一步到位 多模块编译 一次性编译 独立编译 C源文件到可执行文件共经历了4个过程 在使用GCC编译程序时 编译过程可以被细分为四个阶段 包括预处理 编译 汇编 链接 分步处理
  • 分析排序算法的时间复杂度和空间复杂度

    1 冒泡排序 时间复杂度 O n 2 空间复杂度 O 1 冒泡排序需要进行n 1趟冒泡 每一趟需要比较n i次 最坏情况下需要交换n 1次 故时间复杂度为O n 2 冒泡排序的空间复杂度是O 1 因为只需要使用一个临时变量即可 2 选择排序
  • 【C++】动态内存管理和泛型编程

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 C C 内存区域划分 二 常见变量存储区域 三 new
  • 程序员必知,招聘黑话大全!

    大家周末愉快 今天分享 IT 行业一些常见的招聘术语 准备参加面试的朋友一定要知道 Base base 有两层含义 对于薪资来说 base 即为你的基本薪资 假设你的薪资组成为 20k 16 签字费 股票 这个 20k 则为你的薪资 bas
  • C++中的引用

    一 引用 引用不是定义一个新的变量 而是给一个已有的变量起一个别名 类型 引用变量名 已定义过的变量名 注 1 一个变量可以有多个别名 2 引用必须初始化 3 引用只能在初始化时引用一次 不能在成为其他变量的别名 include
  • 深度神经网络在NLP的应用!

    关注后 星标 Datawhale 每日干货 每月组队学习 不错过 Datawhale干货 作者 张泽 华东师范大学 Datawhale优秀学习者 深度学习正在给自然语言处理带来巨大的变革 例如机器翻译 情感分析 问答系统等落地实践 深度学习
  • RT-Thread之线程的诞生与消亡史

    1 引言 本文基于Cotex M内核处理器分析讨论RT Thread中线程从创建到消亡的整个详细过程 线程的载体 控制块 RT Thread中是用线程控制块来描述线程实体的 在 RT Thread 中 线程控制块由结构体 struct rt
  • 数字化信道

    数字化信道 数字化信道主要包括多相滤波和DFT两个模块 多相滤波 多相滤波 就是将滤波器系数按照相数进行重排 在D倍抽取后 整个频带的频谱将混叠在0频附近 F s
  • 二分查找的总结

    一 二分查找 1 思路分析 这道题目的前提是数组为有序数组 同时题目还强调数组中无重复元素 因为一旦有重复元素 使用二分查找法返回的元素下标可能不是唯一的 这些都是使用二分法的前提条件 当大家看到题目描述满足如上条件的时候 可要想一想是不是
  • 2022第十三届蓝桥杯国赛真题javaB组

    文章目录 试题A 重合次数 试题B 数数 试题C 左移右移 试题D 窗口 试题E 迷宫 试题F 小球称重 试题G 背包与魔法 试题H 修路 试题I 围栏 试题J 好数之和 试题A 重合次数 本题总分 5 分 问题描述 在同一天中 从上午6