试卷总分:100分


选择题 10题 20分

01 02 03 04 05 06 07 08 09 10


判断题 10题 20分

11 12 13 14 15 16 17 18 19 20


编程题 2题 60分

21 22

E1145 电子学会青少年软件编程等级考试-C++ -CIE-202603-C++五级-真题-考试

选择题 共10道

01

快速幂算法的核心思想?

2分
登录后查看选项
02

斐波那契数列的递推公式为f(n)=f(n-1)+f(n-2),f(1)=1,f(2)=1,则f(6)的值?

2分
登录后查看选项
03

以下哪个问题最适合用贪心算法求解?

2分
登录后查看选项
04

已知数组arr[5] = {1,2,3,4,5},其前缀和数组preSum中,已知preSum[0]=0,则preSum[3]的值?

2分
登录后查看选项
05

差分算法最适合解决以下哪类问题?

2分
登录后查看选项
06

在有序数组中查找两个数的和等于目标值,最优的解法是双指针法,其时间复杂度为?

2分
登录后查看选项
07

二分查找算法的前提条件?

2分
登录后查看选项
08

以下哪个STL容器是动态数组,支持随机访问?

2分
登录后查看选项
09

STL中,用于对容器元素进行排序的函数?

2分
登录后查看选项
10

以下关于string类的说法,错误的?

2分
登录后查看选项

判断题 共10道

11

快速幂算法可以将求a^b的时间复杂度从θ(b) 优化到 θ(logb)。

2分
登录后查看选项
12

递推算法是从已知的初始条件出发,逐步推导出后续结果。

2分
登录后查看选项
13

贪心算法的核心思想是枚举所有可能的情况。

2分
登录后查看选项
14

前缀和数组可以快速求出数组中任意区间的元素和。

2分
登录后查看选项
15

对差分数组求前缀和,可以得到原数组。

2分
登录后查看选项
16

二分查找的最坏时间复杂度是θ(n)。

2分
登录后查看选项
17

双指针算法只能用于处理有序数组的问题,无法在无序数组或链表中使用。

2分
登录后查看选项
18

vector容器的push_back()函数可以在序列头部插入元素。

2分
登录后查看选项
19

set容器中的元素是内部有序且不重复的。

2分
登录后查看选项
20

map容器存储的是键值对,键是唯一的。

2分
登录后查看选项

编程题 共2道

21

三数之和

题目描述

现有长度为 n 的数列 a、数列 b、数列 c 再给定一个长度为 q 的查询数列 x。

对于每次查询 xi ,请判断能否从三个数列中各选一个元素,使得三者之和恰好等于 xi。

输入

第一行,一个整数n。

第二行,n个整数,表示数列a1,a2,...,an。

第三行,n个整数,表示数列b1,b2,...,bn。

第四行,n个整数,表示数列c1,c2,...,cn。

第五行,一个整数q,表示q次查询。

第六行,q个整数,表示每一次查询的整数xi。

输出

共q行,第i表示查询xi的结果。

数据范围

1≤n≤100

0≤ai,bi,ci≤10^8

1≤q≤2×10^5

0≤xi≤3×10^8

所有输入均为整数

输入样例1

3

1 2 3

4 5 6

7 8 9

2

12 20

输出样例1

Yes

No

输入样例2

4

0 100 200 300

0 50 150 250

0 80 180 280

5

0 430 580 630 750

输出样例2

Yes

Yes

Yes

Yes

No

30分

C0751
登录后作答
22

爆破

题目描述

你遇到了 n 只怪兽,第 i 只怪兽的初始体力为 hi。当怪兽的体力降至 0 级以下时,会立即消失。

你可以释放爆炸攻击怪兽,每次爆炸规则如下:选择一只存活的怪兽作为爆炸中心,中心怪兽的体力减少 a,其余所有怪兽的体力各减少 b,其中 a>b。

请计算消灭所有怪兽最少需要释放多少次爆炸。

输入

第一行三个整数,表示n,a,b

接下来n个整数hi,表示n只怪兽的体力

输出

输出消灭所有怪兽所需的最小爆炸次数

数据范围

输入中的所有数均为整数

1≤n≤10^5

1≤b≤a≤10^9

1≤hi≤10^9

输入样例1

4 5 3

8 7 4 2

输出样例1

2

输入样例2

2 10 4

20 20

输出样例2

4

输入样例3

5 2 1

900000000 900000000 1000000000 1000000000 1000000000

输出样例3

800000000

30分

C0752
登录后作答