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

发现宝藏

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


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

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}A0end{array}

A0

【样例输出 1】

1189

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

1189

841

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

841

【样例输入 2】

A

1

begin{array}{llll}A1end{array}

A1

【样例输出 2】

841

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

841

594

begin{array}{llll}594end{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=a1a2+a1a3++a1an+a2a3++an2an1+an2an+an1an

【输入格式】

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

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}4end{array}

4

1

3

6

9

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

1369

【样例输出】

117

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

117

【评测用例规模与约定】

对于

30

%

30 %

30% 的数据,

1

n

1000

,

1

a

i

100

1 leq n leq 1000,1 leq a_{i} leq 100

1n1000,1ai100

对于所有评测用例,

1

n

200000

,

1

a

i

1000

1 leq n leq 200000,1 leq a_{i} leq 1000

1n200000,1ai1000


试题

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}2end{array}

2

2

3

4

1

2

4

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

234124

1

2

3

4

5

6

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

123456

【样例输出】

4

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

4

6

begin{array}{llllll}6end{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}=

1T5,1a1,b1,a2,b2,a3,b310,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

1T5,1a1,b1,a2,b2,a3,b310

对于

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

1T10,1a1,b1,a2,b2,a3,b320

对于所有评测用例,

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

1T1000,1a1,b1,a2,b2,a3,b3100


试题 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 & 1end{array}

441

1

2

3

4

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

1234

1

4

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

14

1

2

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

12

2

3

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

23

3

3

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

33

【样例输出】

y

e

s

begin{array}{llll}yesend{array}

yes

n

o

begin{array}{llll}noend{array}

no

y

e

s

begin{array}{llll}yesend{array}

yes

n

o

begin{array}{llll}noend{array}

no

【样例说明】

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

【评测用例规模与约定】

对于

20

%

20 %

20% 的评测用例,

1

n

,

m

100

1 leq n, m leq 100

1n,m100;

对于

40

%

40 %

40% 的评测用例,

1

n

,

m

1000

1 leq n, m leq 1000

1n,m1000

对于所有评测用例,

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

1n,m100000,0x<220,1lirin,

0

A

i

<

2

20

0 leq A_{i}<2^{20}

0Ai<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&7end{array}

57

【样例输出】

1

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

1

【评测用例规模与约定】

对于

20

%

20 %

20% 的评测用例,

a

<

b

1

0

5

a<b leq 10^{5}

a<b105

对于

40

%

40 %

40% 的评测用例,

a

<

b

1

0

9

a<b leq 10^{9}

a<b109;

对于所有评测用例,

1

a

<

b

1

0

18

1 leq a<b leq 10^{18}

1a<b1018


试题 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

n1 个非负整数

H

1

,

H

2

,


,

H

n

1

H_{1}, H_{2}, cdots, H_{n-1}

H1,H2,,Hn1, 其中

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&1end{array}

51

1

0

1

0

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

1010

【样例输出】

4

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

4

【样例解释】

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

【评测用例规模与约定】

对于

30

%

30 %

30% 的评测用例,

n

100

n leq 100

n100;

对于

60

%

60 %

60% 的评测用例,

n

1000

n leq 1000

n1000;

对于所有评测用例,

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}

1n105,1x109,1Hi104


试题 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}100000end{array}

100000

【样例输出】

680584257

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

680584257

【评测用例规模与约定】

对于

20

%

20 %

20% 的评测用例,

n

1

0

5

n leq 10^{5}

n105

对于

30

%

30 %

30% 的评测用例,

n

1

0

7

n leq 10^{7}

n107

对于所有评测用例,

1

n

1

0

9

1 leq n leq 10^{9}

1n109


试题

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 &1end{array}

51

1

4

2

8

5

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

14285

【样例输出】

4

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

4

对于

50

%

50 %

50% 的评测用例,

1

K

N

10000

1 leq K leq N leq 10000

1KN10000

对于所有评测用例,

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}

1KN105,1Ai106

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
内是否存在10000的质因式即可,因为大于100的质因式一定会被舍去。

)">
下一篇>>