蓝桥杯 2025年省赛(Java)真题分享
题目来自👉蓝桥杯官网历年真题
试题A:逃离高塔
【问题描述】
小蓝一觉醒来,发现自己被困在一座高耸的塔中。这座塔共有 2025 层,每一层都刻有一个数字的立方值,从底层的 1 3 , 2 3 , 3 3 , … 1^3, 2^3, 3^3, \dots 13,23,33,…,一直到顶层的 202 5 3 2025^3 20253,层层叠叠,直入云霄。
塔顶有一扇门,门旁刻着一行字:
“若想离开此塔,需找出这些立方数中个位数字为 3 的数的个数。”
小蓝非常着急,因为他需要尽快离开这座塔,去参加即将到来的蓝桥杯比赛。时间紧迫,请你帮助他解答这个问题。
【答案提交】
这是一道结果填空题,你只需算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
试题B:消失的蓝宝
【问题描述】
“蓝宝又不见了!”2025年4月12日,蓝桥杯吉祥物“蓝宝”在省赛前夕突然失踪。小蓝翻阅了蓝宝的活动记录,发现它的出现时间似乎与蓝桥杯的两个重要日期密切相关:
- 第十六届省赛日期:20250412
- 第十五届省赛日期:20240413
经过分析,小蓝推测蓝宝的下一次出现时间 N N N 满足以下条件:
- N + 20250412 N + 20250412 N+20250412 能被 20240413 20240413 20240413 整除。
- N + 20240413 N + 20240413 N+20240413 能被 20250412 20250412 20250412 整除。
现在,请你帮小蓝找出满足条件的最小正整数 N N N,预测蓝宝的下一次出现时间。
【答案提交】
这是一道结果填空题,你只需算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
试题C:电池分组
【问题描述】
研究员小蓝受到实验室主任的指示,需要对实验室新研发的 N N N 个新型能量电池进行分组实验。这 N N N 个能量电池的能量值分别用 A 1 , A 2 , … , A N A_1, A_2, \dots, A_N A1,A2,…,AN 表示,每个能量值都是一个整数。为了保证实验的安全性,小蓝需要将这 N N N 个能量电池分成两组,使得这两组能量电池的能量值异或和相等。
能量值的异或和计算方法如下:
对于一个集合
S
S
S,其异或和等于集合中所有元素的按位异或结果。
例如,集合
{
1
,
2
,
3
}
\{1,2,3\}
{1,2,3} 的异或和为
1
⊕
2
⊕
3
=
0
1 \oplus 2 \oplus 3 = 0
1⊕2⊕3=0,其中
⊕
\oplus
⊕ 表示异或运算。
现在,小蓝想知道,这 N N N 个能量电池能否分成两组,使得这两组能量电池的能量值异或和相等。注意,每组至少包含一个能量电池。
【输入格式】
- 第一行:一个整数 T T T,表示测试用例的数量。
- 每个测试用例占两行:
- 第一行:一个整数 N N N,表示能量电池的数量。
- 第二行: N N N 个整数 A 1 , A 2 , … , A N A_1,A_2,\dots,A_N A1,A2,…,AN,表示每个能量电池的能量值。
【输出格式】
对于每个测试用例,输出一行:
- 如果可以将能量电池分成两组,使得这两组能量电池的能量值异或和相等,则输出
YES
; - 否则,输出
NO
。
【样例输入】
2
3
1 2 3
4
1 2 3 4
【样例输出】
YES
NO
【评测用例规模与约定】
- 对于 30% 的评测用例: 1 ≤ T ≤ 10 1 \leq T \leq 10 1≤T≤10, 2 ≤ N ≤ 100 2 \leq N \leq 100 2≤N≤100, 1 ≤ A i ≤ 1 0 3 1 \leq A_i \leq 10^3 1≤Ai≤103。
- 对于 100% 的评测用例: 1 ≤ T ≤ 1 0 3 1 \leq T \leq 10^3 1≤T≤103, 1 ≤ N ≤ 1 0 3 1 \leq N \leq 10^3 1≤N≤103, 1 ≤ A i ≤ 1 0 5 1 \leq A_i \leq 10^5 1≤Ai≤105。
试题D:魔法科考试
【问题描述】
小明正在参加魔法科的期末考试,考生需要根据给定的口诀组合出有效的魔法。老师给定了 n n n 个上半部分口诀 α 1 , α 2 , … , α n \alpha_1,\alpha_2,\dots,\alpha_n α1,α2,…,αn 和 m m m 个下半部分口诀 b 1 , b 2 , … , b m b_1,b_2,\dots,b_m b1,b2,…,bm,均用整数表示。
一个完整的口诀为 S = α i + b j S = \alpha_i + b_j S=αi+bj。
当 S ≤ n + m S \leq n + m S≤n+m 且 S S S 为质数时,魔法是有效的。
口诀可重复使用。问共有多少种不同的有效魔法(只和 S S S 的值有关)。
【输入格式】
- 第一行:两个整数 n , m n, m n,m
- 第二行: n n n 个整数 α 1 , α 2 , … , α n \alpha_1,\alpha_2,\dots,\alpha_n α1,α2,…,αn
- 第三行: m m m 个整数 b 1 , b 2 , … , b m b_1,b_2,\dots,b_m b1,b2,…,bm
【输出格式】
一个整数,表示有效魔法的种类数。
【样例输入】
3 4
2 3 10
3 4 5 1
【样例输出】
3
【评测用例规模与约定】
- 对于 20% 的数据: n , m ≤ 200 n,m \leq 200 n,m≤200
- 对于 60% 的数据: n , m ≤ 2000 n,m \leq 2000 n,m≤2000
- 对于 100% 的数据: n , m ≤ 20000 n,m \leq 20000 n,m≤20000, α i , b j ≤ 20000 \alpha_i,b_j \leq 20000 αi,bj≤20000
试题E:爆破
【问题描述】
小明正在参加一场爆破工作。人们在地面上放置了
n
n
n 个爆炸魔法阵,第
i
i
i 个魔法阵的圆心坐标为
(
x
i
,
y
i
)
(x_i, y_i)
(xi,yi),半径为
r
i
r_i
ri。
如果两个魔法阵相交,则它们可以一起引爆;如果不相交,可以使用一条魔法回路将它们的边缘连接起来。
小明想知道:最少需要布置多长的魔法回路总长度,才能使得所有魔法阵可以一起引爆?
【输入格式】
第一行为一个正整数
n
n
n。
接下来的
n
n
n 行,每行三个整数,表示
x
i
,
y
i
,
r
i
x_i,\ y_i,\ r_i
xi, yi, ri。
【输出格式】
输出一个浮点数,表示答案(四舍五入保留两位小数)。
【样例输入】
4
0 0 1
2 0 2
-3 0 1
4 4 1
【样例输出】
2.47
【样例说明】
连接第 1 和 3 个魔法阵,长度为 1;
连接第 2 和 4 个魔法阵,长度为
2
5
−
3
≈
1.47
2\sqrt{5} - 3 \approx 1.47
25−3≈1.47;
总长度为 2.47。
【评测用例规模与约定】
- 对于 40% 的评测用例: n ≤ 500 n \leq 500 n≤500;
- 对于 100% 的评测用例: n ≤ 5000 n \leq 5000 n≤5000, ∣ x i ∣ , ∣ y i ∣ ≤ 2000 |x_i|,|y_i| \leq 2000 ∣xi∣,∣yi∣≤2000, 0 < r i ≤ 20 0 < r_i \leq 20 0<ri≤20。
试题F:数组翻转
【问题描述】
小明生成了一个长度为
n
n
n 的正整数数组
a
1
,
a
2
,
…
,
a
n
a_1,a_2,\dots,a_n
a1,a2,…,an。
他可以选择连续的一段区间
[
l
,
r
]
[l, r]
[l,r] 进行翻转。
然后从整个数组中选择一段连续且值相等的子数组 x , x , … , x x, x, \dots, x x,x,…,x,得分为:
得分 = (长度) × (值)
请你帮小明求出进行一次翻转操作后,最多能获得多少分数。
【输入格式】
第一行为一个正整数
n
n
n。
第二行为
n
n
n 个用空格分隔的正整数
a
1
,
a
2
,
…
,
a
n
a_1,a_2,\dots,a_n
a1,a2,…,an。
【输出格式】
输出一个整数,表示最大得分。
【样例输入】
7
4 4 3 3 2 1 3
【样例输出】
9
【样例说明】
翻转区间
[
5
,
7
]
[5,7]
[5,7],数组变为:
4 4 3 3 3 1 2
,可以选出三个连续的 3
,得分为
3
×
3
=
9
3 \times 3 = 9
3×3=9。
【评测用例规模与约定】
- 对于 20% 的评测用例: n ≤ 500 n \leq 500 n≤500;
- 对于 100% 的评测用例: n ≤ 1 0 6 n \leq 10^6 n≤106, a i ≤ 1 0 9 a_i \leq 10^9 ai≤109。
试题G:2 的幂
【问题描述】
小明很喜欢
2
2
2 的幂,他有一个正整数数组
a
1
,
a
2
,
…
,
a
n
a_1,a_2,\dots,a_n
a1,a2,…,an。
他可以对任意一个数
a
i
a_i
ai 加上任意正整数(不能超过
1
0
9
10^9
109),使得所有数的乘积是
2
k
2^k
2k 的倍数。
目标:总加数的和最小。如果无法实现,输出
-1
。
【输入格式】
第一行为两个正整数
n
,
k
n,k
n,k。
第二行为
n
n
n 个用空格分隔的正整数
a
1
,
a
2
,
…
,
a
n
a_1,a_2,\dots,a_n
a1,a2,…,an。
【输出格式】
输出一个整数,表示所加的最小总和;如果无法实现,输出 -1
。
【样例输入】
3 9
19 10 3
【样例输出】
12
【样例说明】
加到 24 , 16 , 4 24, 16, 4 24,16,4,乘积为 1536 = 2 9 × 3 1536 = 2^9 \times 3 1536=29×3;总共加了 5 + 6 + 1 = 12 5 + 6 + 1 = 12 5+6+1=12。
【评测用例规模与约定】
- 对于 20% 的评测用例: n , k ≤ 10 n,k \leq 10 n,k≤10;
- 对于 100% 的评测用例: n ≤ 500 n \leq 500 n≤500, k ≤ 5000 k \leq 5000 k≤5000, a i ≤ 1 0 5 a_i \leq 10^5 ai≤105。
试题H:研发资源分配
【问题描述】
蓝桥科技公司中,A 与 B 两个部门在为期 N N N 天的研发中每日提交一个需求等级(1~ N N N 的一个排列)。当天资源归等级高者所有,价值等于当天的编号;若两者相同,则资源作废。
已知 B 部门提交顺序 P 1 , P 2 , … , P N P_1,P_2,\dots,P_N P1,P2,…,PN,A 部门可以自由安排。请你帮 A 部门安排提交顺序,使得:
A获得的资源总额 - B获得的资源总额 最大。
【输入格式】
- 第一行:一个整数 N N N
- 第二行: N N N 个整数 P 1 , P 2 , … , P N P_1,P_2,\dots,P_N P1,P2,…,PN
【输出格式】
输出一个整数,表示最大差值。
【样例输入】
3
1 3 2
【样例输出】
2
【样例说明】
A 选择 [2,1,3]:
- 第1天:A=2 > B=1,A获1
- 第2天:A=1 < B=3,B获2
- 第3天:A=3 > B=2,A获3
- 差值 = 1+3 - 2 = 2
【评测用例规模与约定】
- 对于 20% 的数据: 1 ≤ N ≤ 11 1 \leq N \leq 11 1≤N≤11
- 对于 100% 的数据: 1 ≤ N ≤ 1 0 5 1 \leq N \leq 10^5 1≤N≤105, 所有 P i P_i Pi 均不同