2024年6月 GESP C++ 8级
2024年6月 GESP C++ 8级认证考试真题(含编程操作题部分)
// questions
题目预览
GESP 活动期间,举办方从获胜者 ABCDE 五个⼈中选出三个⼈排成一队升国旗,其中 A 不能排在队首,请问有多少种排法?
242424
484848
323232
121212
777 进制数 235235235 转换成 333 进制数是( )。
111211112111121
111221112211122
112111121111211
111121111211112
000,111,222,333,444,555 这些数字组成一个三位数,请问没有重复数字的情况下,有多少种组法( )。
180180180
120120120
808080
100100100
有 VVV 个顶点、EEE 条边的图的深度优先搜索遍历时间复杂度为( )。
一对夫妻生男生女的概率相同。已知这对夫妻有两个孩子,其中一个是女孩,另一个是男孩的概率是多少?
从 111 到 202420242024 这 202420242024 个数中,共有( )个包含数字 666 的数。
544544544
546546546
564564564
602602602
二进制数 100.001100.001100.001 转换成十进制数是( )。
4.254.254.25
4.1254.1254.125
4.54.54.5
4.754.754.75
以下函数声明,哪个是符合 C++ 语法的?( )。
void BubbleSort(char a[][], int n);
void BubbleSort(char a[][20], int n);
void BubbleSort(char a[10][], int n);
void BubbleSort(char[,] a, int n);
下面有关 C++ 重载的说法,错误的是( )。
两个参数个数不同的函数可以重名。
两个参数类型不同的函数可以重名。
两个类的方法可以重名。
所有 C++ 运算符均可以重载。
小于或等于给定正整数 nnn 的数中,与 nnn 互质的数的个数,我们称为欧拉函数,记作 φ(n)\varphi(n)φ(n) 。下面说法错误的是( )。
如果 nnn 是质数,那么 φ(n)=n−1\varphi(n) = n - 1φ(n)=n−1 。
两个质数一定是互质数。
两个相邻的数一定是互质数。
相邻的两个质数不一定是互质数。
已知一棵二叉树有 101010 个节点,则其中至多有( )个节点有 222 个子节点。
444
555
666
333
二项展开式的系数,正好满足杨辉三角的规律。当 n=5n = 5n=5 时,二项式展开式中 x3x^3x3 项的系数是( )。
555
999
101010
888
下面程序的时间复杂度为( )。
bool notPrime[N] = {false};
void sieve() {
for (int n = 2; n * n < N; n++)
if (!notPrime[n])
for (int i = n * n; i < N; i += n)
notPrime[i] = true;
}
下面程序的最差时间复杂度为( )。
int gcd(int m, int n) {
if (m == 0)
return n;
return gcd(n % m, m);
}
下面程序的输出为( )。
#include <iostream>
using namespace std;
int main() {
int cnt = 0;
for (int x = 0; x <= 10; x++)
for (int y = 0; y <= 10; y++)
for (int z = 0; z <= 10; z++)
if (x + y + z <= 15)
cnt++;
cout << cnt << endl;
return 0;
}
909090
919191
710710710
711711711
AAA BBB CCC DDD EEE 五个小朋友,排成一队跑步,其中 AAA BBB 两人必须排在一起,一共有 484848 种排法。
已知 double 类型的变量 aaa 和 bbb,则执行语句 a = a + b; b = a - b; a = a - b; 后,变量 aaa 和 bbb 的值会互换。
一个袋子中有 333 个完全相同的红色小球、222 个完全相同的蓝色小球。每次从中取出 111 个,再放回袋子,这样进行 333 次后,可能的颜色顺序有 888 种。
已知 int 类型的变量 aaa 和 bbb 中分别存储着一个直角三角形的两条直角边的长度,则斜边的长度可以通过表达式 sqrt(a * a + b * b) 求得。
在一个包含 vvv 个顶点、eee 条边的带权连通简单有向图上使用 Dijkstra 算法求最短路径,时间复杂度为 O(v2)O(v^2)O(v2),可进一步优化至 O(e+vlogv)O(e + v \log v)O(e+vlogv)。
在 nnn 个元素的二叉排序树中查找一个元素,最差情况的时间复杂度是 O(n)O(n)O(n)。
C++ 语言中,可以为同一个类定义多个析构函数。
使用单链表和使用双向链表,查找元素的时间复杂度相同。
为解决哈希函数冲突,可以使用不同的哈希函数为每个表项各建立一个子哈希表,用来管理该表项的所有冲突元素。这些子哈希表一定不会发生冲突。
要判断无向图的连通性,在深度优先搜索和广度优先搜索中选择,深度优先的平均时间复杂度更低。
试题名称:最远点对
时间限制:1.0 s | 内存限制:512.0 MB
题目描述
小杨有一棵包含 nnn 个节点的树,这棵树上的任意一个节点要么是白色,要么是黑色。
小杨想知道相距最远的一对不同颜色节点的距离是多少。
输入格式
第一行包含一个正整数 nnn,代表树的节点数。
第二行包含 nnn 个非负整数 a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an(对于所有的 1≤i≤n1\le i\le n1≤i≤n,均有 aia_iai 等于 000 或 111),其中如果 ai=0a_i=0ai=0,则节点 iii 的颜色为白色;如果 ai=1a_i=1ai=1,则节点 iii 的颜色为黑色。
之后 (n−1)(n-1)(n−1) 行,每行包含两个正整数 xi,yix_i,y_ixi,yi,代表存在一条连接节点 xix_ixi 和 yiy_iyi 的边。
保证输入的树中存在不同颜色的点。
输出格式
输出一个整数,代表相距最远的一对不同颜色节点的距离。
样例输入 #1
5
0 1 0 1 0
1 2
1 3
3 4
3 5
样例输出 #1
3
说明/提示
样例解释
相距最远的不同颜色的一对节点为节点 222 和 555。
数据范围
本题采用捆绑测试。
| 子任务编号 | 得分 | nnn | aia_iai | 特殊条件 |
|---|---|---|---|---|
| 111 | 303030 | ≤105\le 10^5≤105 | 0≤ai≤10\le a_i\le 10≤ai≤1 | 树的形态为一条链 |
| 222 | 303030 | ≤103\le 10^3≤103 | 0≤ai≤10\le a_i\le 10≤ai≤1 | |
| 333 | 404040 | ≤105\le 10^5≤105 | 0≤ai≤10\le a_i\le 10≤ai≤1 |
对于全部数据,保证有 1≤n≤1051\le n\le 10^51≤n≤105,0≤ai≤10\le a_i\le 10≤ai≤1。
试题名称:空间跳跃
时间限制:1.0 s | 内存限制:500.0 MB
题目描述
小杨在二维空间中有 nnn 个水平挡板,并且挡板之间彼此不重叠,其中第 iii 个挡板处于水平高度 hih_ihi,左右端点分别位于 lil_ili 与 rir_iri。
小杨可以在挡板上左右移动,当小杨移动到右端点时,如果再向右移动会竖直掉落,从而落到下方第一个挡板上,移动到左端点时同理。小杨在挡板上每移动 111 个单位长度会耗费 111 个单位时间,掉落时每掉落 111 个单位高度也会耗费 111 个单位时间。
小杨想知道,从第 sss 个挡板上的左端点出发到第 ttt 个挡板需要耗费的最少时间是多少?
注意:可能无法从第 sss 个挡板到达到第 ttt 个挡板。
输入格式
第一行包含一个正整数 nnn,代表挡板数量。
第二行包含两个正整数 s,ts,ts,t,含义如题面所示。
之后 nnn 行,每行包含三个正整数 li,ri,hil_i,r_i,h_ili,ri,hi,代表第 iii 个挡板的左右端点位置与高度。
输出格式
输出一个整数代表需要耗费的最少时间,如果无法到达则输出 −1-1−1。
样例输入 #1
3
3 1
5 6 3
3 5 6
1 4 100000
样例输出 #1
100001
说明/提示
样例解释
耗费时间最少的移动方案为,从第 333 个挡板左端点移动到右端点,耗费 333 个单位时间,然后向右移动掉落到第 222 个挡板上,耗费 100000−6=99994100000-6=99994100000−6=99994 个单位时间,之后再向右移动 111 个单位长度,耗费 111 个单位时间,最后向右移动掉落到第 111 个挡板上,耗费 333 个单位时间。共耗费 100001100001100001 个单位时间。
数据范围
| 子任务编号 | 数据点占比 | nnn | 特殊条件 |
|---|---|---|---|
| 111 | 20%20\%20% | ≤1000\leq 1000≤1000 | li=1l_i=1li=1 |
| 222 | 40%40\%40% | ≤1000\leq 1000≤1000 | li=i,ri=i+1l_i=i,r_i=i+1li=i,ri=i+1 |
| 333 | 40%40\%40% | ≤1000\leq 1000≤1000 |
对于全部数据,保证有 1≤n≤10001\leq n\leq 10001≤n≤1000,1≤li≤ri≤1051\leq l_i\leq r_i\leq 10^51≤li≤ri≤105,1≤hi≤1051\leq h_i\leq 10^51≤hi≤105。