2023第十四届蓝桥杯Java研究生组a组真题

2 篇文章 0 订阅
2 篇文章 0 订阅

2023第十四届蓝桥杯Java研究生组a组真题


试题A:特殊日期

【问题描述】
记一个日期为 yy 年 mm 月 dd 日,统计从 2000 年 1 月 1 日到 2000000 年1 月 1 日,有多少个日期满足年份 yy 是月份 mm 的倍数,同时也是 dd 的倍数。

【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

试题B:与或异或

【问题描述】
小蓝有一张门电路的逻辑图,如下图所示:
在这里插入图片描述
图中每个三角形代表着一种门电路,可能是与门、或门、异或门中的任何一种,它接受上一层中的两个圆形中的数据作为输入,产生一个输出值输出到下一级(如图中箭头所示)。图中圆形表示的是暂存的输出结果,取值只可能是0 或 1。
为了便于表示我们用 arr[i][ j] 表示第 i(0 ≤ i ≤ 4) 行第 j(0 ≤ j ≤ i) 个圆形的值。其中 arr[0] = (In[0], In[1], In[2], In[3], In[4]) 表示的是输入数据,对于某个 arr[i][ j](i ≤ 0),计算方式为 arr[i][ j] = arr[i − 1][ j] op arr[i − 1][ j + 1],其中op 表示的是将 arr[i − 1][ j]、arr[i − 1][ j + 1] 作为输入,将 arr[i][ j] 作为输出的那个门电路,与门、或门、异或门分别对应于按位与 (&)、按位或 (|)、按位异或(^) 运算符。

现在已知输入为 In[0] = 1, In[1] = 0, In[2] = 1, In[3] = 0, In[4] = 1,小蓝想要使得最终的输出 Out 的值为 1,请问一共有多少种不同的门电路组合方式?其中上图中显示的就是一种合法的方式。

【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

试题C:棋盘

时间限制: 3.0s 内存限制: 512.0MB 本题总分:10 分
【问题描述】
小蓝拥有 n × n 大小的棋盘,一开始棋盘上全都是白子。小蓝进行了 m 次操作,每次操作会将棋盘上某个范围内的所有棋子的颜色取反 (也就是白色棋子变为黑色,黑色棋子变为白色)。请输出所有操作做完后棋盘上每个棋子的颜色。

【输入格式】
输入的第一行包含两个整数 n, m,用一个空格分隔,表示棋盘大小与操作数。
接下来 m 行每行包含四个整数 x1, y1, x2, y2,相邻整数之间使用一个空格分隔,表示将在 x1 至 x2 行和 y1 至 y2 列中的棋子颜色取反。

【输出格式】
输出 n 行,每行 n 个 0 或 1 表示该位置棋子的颜色。如果是白色则输出 0,否则输出 1 。

【样例输入】

3 3
1 1 2 2
2 2 3 3
1 1 3 3

【样例输出】

001
010
100

【评测规模】
对于 30% 的评测用例,n m ≤ 500 ;
对于所有评测用例,1 ≤ n, m ≤ 2000 ,1 ≤ x1 ≤ x2 ≤ n ,1 ≤ y1 ≤ y2 ≤ m 。

试题D:子矩阵

时间限制: 5.0s 内存限制: 512.0MB 本题总分:10 分
【问题描述】
给定一个 n × m (n 行 m 列)的矩阵。
设一个矩阵的价值为其所有数中的最大值和最小值的乘积。求给定矩阵的所有大小为 a × b (a 行 b 列)的子矩阵的价值的和。
答案可能很大,你只需要输出答案对 998244353 取模后的结果。
【输入格式】
输入的第一行包含四个整数分别表示 n, m, a, b ,相邻整数之间使用一个空格分隔。
接下来 n 行每行包含 m 个整数,相邻整数之间使用一个空格分隔,表示矩阵中的每个数 Ai, j 。
【输出格式】
输出一行包含一个整数表示答案。
【样例输入】

2 3 1 2
1 2 3
4 5 6

【样例输出】

58

说明:1 × 2 + 2 × 3 + 4 × 5 + 5 × 6 = 58 。
【评测规模】
对于 40% 的评测用例,1 ≤ n, m ≤ 100 ;
对于 70% 的评测用例,1 ≤ n, m ≤ 500 ;
对于所有评测用例,1 ≤ a ≤ n ≤ 1000 1 ≤ b ≤ m ≤ 1000 1 ≤ Ai, j ≤ 109 。

试题E:互质数的个数

时间限制: 3.0s 内存限制: 512.0MB 本题总分:15 分
【问题描述】
给定 a, b,求 1 ≤ x < ab 中有多少个 x 与 ab 互质。由于答案可能很大,你只需要输出答案对 998244353 取模的结果。
【输入格式】
输入一行包含两个整数分别表示 a, b,用一个空格分隔。
【输出格式】
输出一行包含一个整数表示答案。
【样例输入】

2 5

【样例输出】

16

【评测规模】
对于 30% 的评测用例,ab ≤ 106 ;
对于 70% 的评测用例,a ≤ 106,b ≤ 109 ;
对于所有评测用例,1 ≤ a ≤ 109,1 ≤ b ≤ 1018 。

试题F:小蓝的旅行计划

时间限制: 5.0s 内存限制: 512.0MB 本题总分:15 分
【问题描述】
小蓝正计划进行一次漫长的旅行。小蓝计划开车完成这次旅行。显然他在途中需要加油,否则可能无法完成这次旅行。
小蓝要依次经过 n 个地点,其中从第 i − 1 个地点到达第 i 个地点需要消耗Disi 升油。小蓝经过的每个地点都有一个加油站,但每个加油站的规定也不同。
在第 i 个加油站加 1 升油需要 Costi 的费用,且在这个加油站最多只能加 Limi升油。
小蓝的车的油箱也有容量限制,他的车上最多只能装载 m 升油。
一开始小蓝的油箱是满的,请问小蓝需要准备多少钱才能顺利完成他的旅行计划。如果小蓝按给定条件无论准备多少钱都不能完成他的旅行计划,请输出 −1 。

【输入格式】
输入的第一行包含两个整数 n m ,用一个空格分隔。
接下来 n 行每行包含 3 个整数 Disi Costi Limi,相邻整数之间使用一个空格分隔。
【输出格式】
输出一行包含一个整数表示答案。
【样例输入】

4 5
2 9 2
4 5 6
3 2 2
4 1 3

【样例输出】

38

【评测规模】
对于 30% 的评测用例,n Disi Costi Limi m ≤ 300 ;
对于 60% 的评测用例,n Disi Costi Limi m ≤ 5000 ;
对于所有评测用例,1 ≤ n ≤ 2 × 105,1 ≤ Disi Limi m ≤ 109,1 ≤ Costi ≤40000 。

试题G:奇怪的数

时间限制: 3.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
小蓝最近在找一些奇怪的数,其奇数数位上是奇数,而偶数数位上是偶数。同时,这些数的任意 5 个连续数位的和都不大于 m 。
例如当 m = 9 时,10101 和 12303 就是奇怪的数,而 12345 和 11111 则不是。
小蓝想知道一共有多少个长度为 n 的上述的奇怪的数。你只需要输出答案
对 998244353 取模的结果。

【输入格式】
输入一行包含两个整数 n, m ,用一个空格分隔。
【输出格式】
输出一行包含一个整数表示答案。
【样例输入】

5 5

【样例输出】

6

【评测规模】
对于 30% 的评测用例,n ≤ 12 ;
对于 60% 的评测用例,n ≤ 5000 ;
对于所有评测用例,5 ≤ n ≤ 2 × 105,0 ≤ m ≤ 50 。

试题H:太阳

时间限制: 3.0s 内存限制: 512.0MB 本题总分:20 分
【问题描述】
这天,小蓝在二维坐标系的点 (X, Y) 上放了一个太阳,看做点光源。
他拿来了 n 条线段,将它们平行于 x 轴放置在了坐标系中,第 i 条线段的左端点在 xi, yi,长度为 li。线段之间不会有重合或部分重合的情况(但可能出现端点相交)。小蓝想知道有多少条线段能被太阳照亮(一条线段有长度大于 0的部分被照亮就算)。

【输入格式】
输入的第一行包含三个正整数 n, X, Y,相邻整数之间使用一个空格分隔。
接下来 n 行,第 i 行包含三个整数 xi, yi, li,相邻整数之间使用一个空格分隔。
【输出格式】
输出一行包含一个正整数表示答案。
【样例输入】

3 10 2000000
5 3 5
6 2 4
0 1 10

【样例输出】

2

说明:第一条线段在最上面被照亮,第二条线段被第一条完全挡住,第三条线段左边的一段能被照亮。
【评测规模】
对于 30% 的评测用例,n ≤ 1000 ;
对于所有评测用例,1 ≤ n ≤ 100000, 0 ≤ xi, X ≤ 107, 0 < yi ≤ 105, 0 < li ≤100, 106 < Y ≤ 107 。

试题I:高塔

时间限制: 3.0s 内存限制: 512.0MB 本题总分:25 分
【问题描述】
小蓝正在玩一个攀登高塔的游戏。高塔的层数是无限的,但游戏最多只有n 回合。
小蓝一开始拥有 m 点能量,在每个回合都有一个值 Ai 表示小蓝的角色状态。小蓝每回合可以选择消费任意点能量 Ci (最低消费 1 点,没有上限),他在这回合将最多可以向上攀爬 Ai· Ci 层。实际攀爬的层数取决于小蓝自己在这回合的表现,不过最差也会向上爬一层。
当某回合小蓝的能量点数耗尽,那么在完成这个回合后,游戏结束。n 回合结束后,不管能量还有没有剩余,游戏都会直接结束。
给出小蓝每回合的 Ai 和自己一开始的能量点数 m。小蓝想知道有多少种不同的可能出现的游玩过程。如果小蓝在两种游玩过程中的任一对应回合花费的能量点数不同或该回合结束时所处层数不同,那么这两种游玩过程就被视为不同。

【输入格式】
输入的第一行包含两个整数 n, m,用一个空格分隔。
第二行包含 n 个整数 Ai,相邻整数之间使用一个空格分隔,表示小蓝每回合的状态值。
【输出格式】
输出一行包含一个整数表示给定条件下不同游玩过程的数量。由于答案可能很大,你只需要输出答案对 998244353 取模的结果
【样例输入】

9 15
3 2 5 7 1 4 6 8 3

【样例输出】

392149233

【评测规模】
对于 40% 的评测用例,n ≤ 300,m ≤ 500 ;
对于所有评测用例,1 ≤ n ≤ 2 × 105,n ≤ m ≤ 1018,1 ≤ Ai ≤ 109 。

试题J:反异或 01 串

时间限制: 3.0s 内存限制: 512.0MB 本题总分:25 分
【问题描述】
初始有一个空的 01 串,每步操作可以将 0 或 1 添加在左侧或右侧。也可以对整个串进行反异或操作: 取 s′ = s ⊕ rev(s),其中 s 是目前的 01 串,⊕ 表示逐位异或,rev(s) 代表将 s 翻转,也就是说取中心位置并交换所有对称的两个位置的字符。例如,rev(0101) = 1010 rev(010) = 010 rev(0011) = 1100。
反异或操作最多使用一次(可以不用,也可以用一次)。
给定一个 01 串 T,问最少需要添加多少个 1 才能从一个空 01 串得到 T。
在本题中 0 可以添加任意个。
【输入格式】
输入一行包含一个 01 串表示给定的 T 。
【输出格式】
输出一行包含一个整数,表示需要最少添加多少个 1 。
【样例输入】

00111011

【样例输出】

3

【评测规模】
对于 20% 的评测用例,|T| ≤ 10 ;
对于 40% 的评测用例,|T| ≤ 500 ;
对于 60% 的评测用例,|T| ≤ 5000 ;
对于 80% 的评测用例,|T| ≤ 105 ;
对于所有评测用例,1 ≤ |T| ≤ 106,保证 T 中仅含 0 和 1 。

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值