第十三届蓝桥杯省赛真题 Java C 组【原卷】

文章目录

  • 发现宝藏
  • 【考生须知】
  • [试题 A: 排列字母](#试题 A: 排列字母)
  • [试题 B: 特殊时间](#试题 B: 特殊时间)
  • [试题 C: 纸张尺寸](#试题 C: 纸张尺寸)
  • [试题 D: 求和](#试题 D: 求和)
  • [试题 E : \mathbf{E}: E: 矩形拼接](#试题 E : \mathbf{E}: E: 矩形拼接)
  • [试题 F: 选数异或](#试题 F: 选数异或)
  • [试题 G: GCD](#试题 G: GCD)
  • [试题 H: 青蛙过河](#试题 H: 青蛙过河)
  • [试题 I: 因数平方和](#试题 I: 因数平方和)
  • [试题 J \mathrm{J} J : 最长不下降子序列](#试题 J \mathrm{J} J : 最长不下降子序列)

发现宝藏

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。


第十三届蓝桥杯大赛软件赛省赛 Java C 组

【考生须知】

考试开始后, 选手首先下载题目, 并使用考场现场公布的解压密码解压试题。

考试时间为 4 小时。考试期间选手可浏览自己已经提交的答案, 被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。

对同一题目, 选手可多次提交答案, 以最后一次提交的答案为准。

选手必须通过浏览器方式提交自己的答案。选手在其它位置的作答或其它方式提交的答案无效。

试题包含 "结果填空" 和 "程序设计" 两种题型。

结果填空题: 要求选手根据题目描述直接填写结果。求解方式不限。不要求源代码。把结果填空的答案直接通过网页提交即可, 不要书写多余的内容。

程序设计题: 要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果才有机会得分。

注意: 在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的, 不能只对试卷中给定的数据有效。

所有源码必须在同一文件中。调试通过后,拷贝提交。

注意: 不要使用 package 语句。

注意:选手代码的主类名必须为: Main, 否则会被判为无效代码。

注意: 如果程序中引用了类库, 在提交时必须将 import 语句与程序的其他部分同时提交。只允许使用 Java 自带的类库。


试题 A: 排列字母

本题总分:5 分

【问题描述】

小蓝要把一个字符串中的字母按其在字母表中的顺序排列。

例如, LANQIAO 排列后为 AAILNOQ。

又如, GOODGOODSTUDYDAYDAYUP 排列后为 AADDDDDGGOOOOPSTUUYYY

请问对于以下字符串,排列之后字符串是什么?

WHERETHEREISAWILLTHEREISAWAY

【答案提交】

这是一道结果填空的题, 你只需要算出结果后提交即可。本题的结果为一个由大写字母组成的字符串, 在提交答案时只填写这个字符串, 填写多余的内容将无法得分。


试题 B: 特殊时间

本题总分: 5 分

【问题描述】

2022 年 2 月 22 日 22 : 20 22: 20 22:20 是一个很有意义的时间, 年份为 2022 , 由 3 个 2 和 1 个 0 组成, 如果将月和日写成 4 位, 为 0222 , 也是由 3 个 2 和 1 个 0 组成, 如果将时间中的时和分写成 4 位, 还是由 3 个 2 和 1 个 0 组成。

小蓝对这样的时间很感兴趣,他还找到了其它类似的例子,比如 111 年 10 月 11 日 01 : 11 , 2202 01: 11,2202 01:11,2202 年 2 月 22 日 22 : 02 22: 02 22:02 等等。

请问,总共有多少个时间是这种年份写成 4 位、月日写成 4 位、时间写成 4 位后由 3 个一种数字和 1 个另一种数字组成。注意 1111 年 11 月 11 日 11:11 不算, 因为它里面没有两种数字。

【答案提交】

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


试题 C: 纸张尺寸

时间限制: 1.0 s 1.0 \mathrm{~s} 1.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 10 分

【问题描述】

在 ISO 国际标准中定义了 A 0 \mathrm{A} 0 A0 纸张的大小为 1189 m m × 841 m m 1189 \mathrm{~mm} \times 841 \mathrm{~mm} 1189 mm×841 mm, 将 A 0 \mathrm{A} 0 A0 纸沿长边对折后为 A 1 \mathrm{A} 1 A1 纸, 大小为 841 m m × 594 m m 841 \mathrm{~mm} \times 594 \mathrm{~mm} 841 mm×594 mm, 在对折的过程中长度直接取下整 (实际裁前时可能有损耗)。将 A 1 \mathrm{A} 1 A1 纸沿长边对折后为 A 2 \mathrm{A} 2 A2 纸, 依此类推。

输入纸张的名称, 请输出纸张的大小。

【输入格式】

输入一行包含一个字符串表示纸张的名称, 该名称一定是 A0、A1、A2、 A3、A4、A5、A6、A7、A8、A9 之一。

【输出格式】

输出两行, 每行包含一个整数, 依次表示长边和短边的长度。

【样例输入 1】

A 0 \begin{array}{llll}A0\end{array} A0

【样例输出 1】

1189 \begin{array}{llll}1189\end{array} 1189

841 \begin{array}{llll}841\end{array} 841

【样例输入 2】

A 1 \begin{array}{llll}A1\end{array} A1

【样例输出 2】

841 \begin{array}{llll}841\end{array} 841

594 \begin{array}{llll}594\end{array} 594


试题 D: 求和

时间限制: 1.0 s 1.0 \mathrm{~s} 1.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 10 分

【问题描述】

给定 n n n 个整数 a 1 , a 2 , ⋯   , a n a_{1}, a_{2}, \cdots, a_{n} a1,a2,⋯,an, 求它们两两相乘再相加的和, 即

S = a 1 ⋅ a 2 + a 1 ⋅ a 3 + ⋯ + a 1 ⋅ a n + a 2 ⋅ a 3 + ⋯ + a n − 2 ⋅ a n − 1 + a n − 2 ⋅ a n + a n − 1 ⋅ a n ⋅ S=a_{1} \cdot a_{2}+a_{1} \cdot a_{3}+\cdots+a_{1} \cdot a_{n}+a_{2} \cdot a_{3}+\cdots+a_{n-2} \cdot a_{n-1}+a_{n-2} \cdot a_{n}+a_{n-1} \cdot a_{n} \cdot S=a1⋅a2+a1⋅a3+⋯+a1⋅an+a2⋅a3+⋯+an−2⋅an−1+an−2⋅an+an−1⋅an⋅

【输入格式】

输入的第一行包含一个整数 n n n 。

第二行包含 n n n 个整数 a 1 , a 2 , ⋯ a n a_{1}, a_{2}, \cdots a_{n} a1,a2,⋯an 。

【输出格式】

输出一个整数 S S S, 表示所求的和。请使用合适的数据类型进行运算。

【样例输入】

4 \begin{array}{llll}4\end{array} 4

1 3 6 9 \begin{array}{llll}1 & 3 & 6 & 9\end{array} 1369

【样例输出】

117 \begin{array}{llll}117\end{array} 117

【评测用例规模与约定】

对于 30 % 30 \% 30% 的数据, 1 ≤ n ≤ 1000 , 1 ≤ a i ≤ 100 1 \leq n \leq 1000,1 \leq a_{i} \leq 100 1≤n≤1000,1≤ai≤100 。

对于所有评测用例, 1 ≤ n ≤ 200000 , 1 ≤ a i ≤ 1000 1 \leq n \leq 200000,1 \leq a_{i} \leq 1000 1≤n≤200000,1≤ai≤1000 。


试题 E : \mathbf{E}: E: 矩形拼接

时间限制: 1.0 s 1.0 \mathrm{~s} 1.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 15 分

【问题描述】

已知 3 个矩形的大小依次是 a 1 × b 1 , a 2 × b 2 a_{1} \times b_{1}, a_{2} \times b_{2} a1×b1,a2×b2 和 a 3 × b 3 a_{3} \times b_{3} a3×b3 。用这 3 个矩形能拼出的所有多边形中, 边数最少可以是多少?

例如用 3 × 2 3 \times 2 3×2 的矩形 (用 A 表示)、 4 × 1 4 \times 1 4×1 的矩形 (用 B 表示) 和 2 × 4 2 \times 4 2×4 的矩形 (用 C \mathrm{C} C 表示) 可以拼出如下 4 边形。

例如用 3 × 2 3 \times 2 3×2 的矩形 (用 A A A 表示)、 3 × 1 3 \times 1 3×1 的矩形 (用 B 表示) 和 1 × 1 1 \times 1 1×1 的矩形 (用 C \mathrm{C} C 表示) 可以拼出如下 6 边形。

【输入格式】

输入包含多组数据。

第一行包含一个整数 T T T, 代表数据组数。

以下 T T T 行, 每行包含 6 个整数 a 1 , b 1 , a 2 , b 2 , a 3 , b 3 a_{1}, b_{1}, a_{2}, b_{2}, a_{3}, b_{3} a1,b1,a2,b2,a3,b3, 其中 a 1 , b 1 a_{1}, b_{1} a1,b1 是第一个矩形的边长, a 2 , b 2 a_{2}, b_{2} a2,b2 是第二个矩形的边长, a 3 , b 3 a_{3}, b_{3} a3,b3 是第三个矩形的边长。

【输出格式】

对于每组数据, 输出一个整数代表答案。

【样例输入】

2 \begin{array}{llllll}2\end{array} 2

2 3 4 1 2 4 \begin{array}{llllll}2 & 3 & 4 & 1 & 2 & 4\end{array} 234124

1 2 3 4 5 6 \begin{array}{lllllll}1 & 2 & 3 & 4 & 5 & 6\end{array} 123456

【样例输出】

4 \begin{array}{llllll} 4\end{array} 4

6 \begin{array}{llllll}6\end{array} 6

【评测用例规模与约定】

对于 10 % 10 \% 10% 的评测用例, 1 ≤ T ≤ 5 , 1 ≤ a 1 , b 1 , a 2 , b 2 , a 3 , b 3 ≤ 10 , a 1 = a 2 = 1 \leq T \leq 5,1 \leq a_{1}, b_{1}, a_{2}, b_{2}, a_{3}, b_{3} \leq 10, a_{1}=a_{2}= 1≤T≤5,1≤a1,b1,a2,b2,a3,b3≤10,a1=a2= a 3 a_{3} a3 。

对于 30 % 30 \% 30% 的评测用例, 1 ≤ T ≤ 5 , 1 ≤ a 1 , b 1 , a 2 , b 2 , a 3 , b 3 ≤ 10 1 \leq T \leq 5,1 \leq a_{1}, b_{1}, a_{2}, b_{2}, a_{3}, b_{3} \leq 10 1≤T≤5,1≤a1,b1,a2,b2,a3,b3≤10 。

对于 60 % 60 \% 60% 的评测用例, 1 ≤ T ≤ 10 , 1 ≤ a 1 , b 1 , a 2 , b 2 , a 3 , b 3 ≤ 20 1 \leq T \leq 10,1 \leq a_{1}, b_{1}, a_{2}, b_{2}, a_{3}, b_{3} \leq 20 1≤T≤10,1≤a1,b1,a2,b2,a3,b3≤20 。

对于所有评测用例, 1 ≤ T ≤ 1000 , 1 ≤ a 1 , b 1 , a 2 , b 2 , a 3 , b 3 ≤ 100 1 \leq T \leq 1000,1 \leq a_{1}, b_{1}, a_{2}, b_{2}, a_{3}, b_{3} \leq 100 1≤T≤1000,1≤a1,b1,a2,b2,a3,b3≤100 。


试题 F: 选数异或

时间限制: 1.0 s 1.0 \mathrm{~s} 1.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 15 分

【问题描述】

给定一个长度为 n n n 的数列 A 1 , A 2 , ⋯   , A n A_{1}, A_{2}, \cdots, A_{n} A1,A2,⋯,An 和一个非负整数 x x x, 给定 m m m 次查询, 每次询问能否从某个区间 [ l , r ] [l, r] [l,r] 中选择两个数使得他们的异或等于 x x x 。

【输入格式】

输入的第一行包含三个整数 n , m , x n, m, x n,m,x 。

第二行包含 n n n 个整数 A 1 , A 2 , ⋯   , A n A_{1}, A_{2}, \cdots, A_{n} A1,A2,⋯,An 。

接下来 m m m 行, 每行包含两个整数 l i , r i l_{i}, r_{i} li,ri 表示询问区间 [ l i , r i ] \left[l_{i}, r_{i}\right] [li,ri] 。

【输出格式】

对于每个询问, 如果该区间内存在两个数的异或为 x x x 则输出 yes, 否则输出 no.

【样例输入】

4 4 1 \begin{array}{lll}4 & 4 & 1\end{array} 441

1 2 3 4 \begin{array}{llll}1 & 2 & 3 & 4\end{array} 1234

1 4 \begin{array}{llll}1 & 4\end{array} 14

1 2 \begin{array}{llll}1 & 2\end{array} 12

2 3 \begin{array}{llll}2 &3\end{array} 23

3 3 \begin{array}{llll}3 & 3\end{array} 33

【样例输出】

y e s \begin{array}{llll}yes\end{array} yes

n o \begin{array}{llll}no\end{array} no

y e s \begin{array}{llll}yes\end{array} yes

n o \begin{array}{llll}no\end{array} no

【样例说明】

显然整个数列中只有 2,3 的异或为 1 。

【评测用例规模与约定】

对于 20 % 20 \% 20% 的评测用例, 1 ≤ n , m ≤ 100 1 \leq n, m \leq 100 1≤n,m≤100;

对于 40 % 40 \% 40% 的评测用例, 1 ≤ n , m ≤ 1000 1 \leq n, m \leq 1000 1≤n,m≤1000 ,

对于所有评测用例, 1 ≤ n , m ≤ 100000 , 0 ≤ x < 2 20 , 1 ≤ l i ≤ r i ≤ n 1 \leq n, m \leq 100000,0 \leq x<2^{20}, 1 \leq l_{i} \leq r_{i} \leq n 1≤n,m≤100000,0≤x<220,1≤li≤ri≤n,

0 ≤ A i < 2 20 0 \leq A_{i}<2^{20} 0≤Ai<220 。


试题 G: GCD

时间限制: 1.0 s 1.0 \mathrm{~s} 1.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 20 分

【问题描述】

给定两个不同的正整数 a , b a, b a,b, 求一个正整数 k k k 使得 gcd ⁡ ( a + k , b + k ) \operatorname{gcd}(a+k, b+k) gcd(a+k,b+k) 尽可能大, 其中 gcd ⁡ ( a , b ) \operatorname{gcd}(a, b) gcd(a,b) 表示 a a a 和 b b b 的最大公约数, 如果存在多个 k k k, 请输出所有满足条件的 k k k 中最小的那个。

【输入格式】

输入一行包含两个正整数 a , b a, b a,b, 用一个空格分隔。

【输出格式】

输出一行包含一个正整数 k k k 。

【样例输入】

5 7 \begin{array}{llll}5&7\end{array} 57

【样例输出】

1 \begin{array}{llll}1\end{array} 1

【评测用例规模与约定】

对于 20 % 20 \% 20% 的评测用例, a < b ≤ 1 0 5 a<b \leq 10^{5} a<b≤105 ;

对于 40 % 40 \% 40% 的评测用例, a < b ≤ 1 0 9 a<b \leq 10^{9} a<b≤109;

对于所有评测用例, 1 ≤ a < b ≤ 1 0 18 1 \leq a<b \leq 10^{18} 1≤a<b≤1018 。


试题 H: 青蛙过河

时间限制: 1.0 s 1.0 \mathrm{~s} 1.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 20 分

【问题描述】

小青蛙住在一条河边, 它想到河对岸的学校去学习。小青蛙打算经过河里的石头跳到对岸。

河里的石头排成了一条直线,小青蛙每次跳跃必须落在一块石头或者岸上。不过, 每块石头有一个高度, 每次小青蛙从一块石头起跳, 这块石头的高度就会下降 1 , 当石头的高度下降到 0 时小青蛙不能再跳到这块石头上(某次跳跃后使石头高度下降到 0 是允许的)。

小青蛙一共需要去学校上 x x x 天课, 所以它需要往返 2 x 2 x 2x 次。当小青蛙具有一个跳跃能力 y y y 时, 它能跳不超过 y y y 的距离。

请问小青蛙的跳跃能力至少是多少才能用这些石头上完 x x x 次课。

【输入格式】

输入的第一行包含两个整数 n , x n, x n,x, 分别表示河的宽度和小青蛙需要去学校的天数。请注意 2 x 2 x 2x 才是实际过河的次数。

第二行包含 n − 1 n-1 n−1 个非负整数 H 1 , H 2 , ⋯   , H n − 1 H_{1}, H_{2}, \cdots, H_{n-1} H1,H2,⋯,Hn−1, 其中 H i > 0 H_{i}>0 Hi>0 表示在河中与小青蛙的家相距 i i i 的地方有一块高度为 H i H_{i} Hi 的石头, H i = 0 H_{i}=0 Hi=0 表示这个位置没有石头。

【输出格式】

输出一行, 包含一个整数, 表示小青蛙需要的最低跳跃能力。

【样例输入】

5 1 \begin{array}{llll}5&1\end{array} 51

1 0 1 0 \begin{array}{llll}1&0&1&0\end{array} 1010

【样例输出】

4 \begin{array}{llll}4\end{array} 4

【样例解释】

由于只有两块高度为 1 的石头, 所以往返只能各用一块。第 1 块石头和对岸的距离为 4 , 如果小青蛙的跳跃能力为 3 则无法满足要求。所以小青蛙最少需要 4 的跳跃能力。

【评测用例规模与约定】

对于 30 % 30 \% 30% 的评测用例, n ≤ 100 n \leq 100 n≤100;

对于 60 % 60 \% 60% 的评测用例, n ≤ 1000 n \leq 1000 n≤1000;

对于所有评测用例, 1 ≤ n ≤ 1 0 5 , 1 ≤ x ≤ 1 0 9 , 1 ≤ H i ≤ 1 0 4 1 \leq n \leq 10^{5}, 1 \leq x \leq 10^{9}, 1 \leq H_{i} \leq 10^{4} 1≤n≤105,1≤x≤109,1≤Hi≤104 。


试题 I: 因数平方和

时间限制: 1.0 s 1.0 \mathrm{~s} 1.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 25 分

【问题描述】

记 f ( x ) f(x) f(x) 为 x x x 的所有因数的平方的和。例如: f ( 12 ) = 1 2 + 2 2 + 3 2 + 4 2 + 6 2 + f(12)=1^{2}+2^{2}+3^{2}+4^{2}+6^{2}+ f(12)=12+22+32+42+62+ 1 2 2 12^{2} 122 。

定义 g ( n ) = ∑ i = 1 n f ( i ) g(n)=\sum_{i=1}^{n} f(i) g(n)=∑i=1nf(i) 。给定 n n n, 求 g ( n ) g(n) g(n) 除以 1 0 9 + 7 10^{9}+7 109+7 的余数。

【输入格式】

输入一行包含一个正整数 n n n 。

【输出格式】

输出一个整数表示答案 g ( n ) g(n) g(n) 除以 1 0 9 + 7 10^{9}+7 109+7 的余数。

【样例输入】

100000 \begin{array}{llll}100000\end{array} 100000

【样例输出】

680584257 \begin{array}{llll}680584257\end{array} 680584257

【评测用例规模与约定】

对于 20 % 20 \% 20% 的评测用例, n ≤ 1 0 5 n \leq 10^{5} n≤105 。

对于 30 % 30 \% 30% 的评测用例, n ≤ 1 0 7 n \leq 10^{7} n≤107 。

对于所有评测用例, 1 ≤ n ≤ 1 0 9 1 \leq n \leq 10^{9} 1≤n≤109 。


试题 J \mathrm{J} J : 最长不下降子序列

时间限制: 1.0 s 1.0 \mathrm{~s} 1.0 s 内存限制: 512.0 M B 512.0 \mathrm{MB} 512.0MB 本题总分: 25 分

【问题描述】

给定一个长度为 N N N 的整数序列: A 1 , A 2 , ⋯   , A N A_{1}, A_{2}, \cdots, A_{N} A1,A2,⋯,AN 。现在你有一次机会, 将其中连续的 K K K 个数修改成任意一个相同值。请你计算如何修改可以使修改后的数列的最长不下降子序列最长, 请输出这个最长的长度。

最长不下降子序列是指序列中的一个子序列, 子序列中的每个数不小于在它之前的数。

【输入格式】

输入第一行包含两个整数 N N N 和 K K K 。

第二行包含 N N N 个整数 A 1 , A 2 , ⋯   , A N A_{1}, A_{2}, \cdots, A_{N} A1,A2,⋯,AN 。

【输出格式】

输出一行包含一个整数表示答案。

【样例输入】

5 1 \begin{array}{lllll}5 &1\end{array} 51

1 4 2 8 5 \begin{array}{lllll}1 & 4 & 2 & 8 & 5\end{array} 14285

【样例输出】

4 \begin{array}{lllll}4\end{array} 4

对于 50 % 50 \% 50% 的评测用例, 1 ≤ K ≤ N ≤ 10000 1 \leq K \leq N \leq 10000 1≤K≤N≤10000 ;

对于所有评测用例, 1 ≤ K ≤ N ≤ 1 0 5 , 1 ≤ A i ≤ 1 0 6 1 \leq K \leq N \leq 10^{5}, 1 \leq A_{i} \leq 10^{6} 1≤K≤N≤105,1≤Ai≤106 。

相关推荐
李慕婉学姐9 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
奋进的芋圆10 小时前
Java 延时任务实现方案详解(适用于 Spring Boot 3)
java·spring boot·redis·rabbitmq
sxlishaobin11 小时前
设计模式之桥接模式
java·设计模式·桥接模式
model200511 小时前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端
荒诞硬汉11 小时前
JavaBean相关补充
java·开发语言
提笔忘字的帝国11 小时前
【教程】macOS 如何完全卸载 Java 开发环境
java·开发语言·macos
2501_9418824812 小时前
从灰度发布到流量切分的互联网工程语法控制与多语言实现实践思路随笔分享
java·开发语言
華勳全栈12 小时前
两天开发完成智能体平台
java·spring·go
alonewolf_9912 小时前
Spring MVC重点功能底层源码深度解析
java·spring·mvc
沛沛老爹12 小时前
Java泛型擦除:原理、实践与应对策略
java·开发语言·人工智能·企业开发·发展趋势·技术原理