2026 CSP-S 第一轮真题
您的姓名:
1、执行下列代码后,cnt 的值是( )。
A、6
B、7
C、11
D、8
2、用权值 {1, 2, 3, 4, 5, 6, 7, 8} 构造哈夫曼树,其带权路径长度是( )。
A、108
B、96
C、99
D、102
3、把 1 到 1000 的所有整数按十进制写出,数字「1」总共出现了多少次( )。
A、300
B、271
C、301
D、320
4、将 5 封信随机装入 5 个写好地址的信封(每封一个),恰好有 2 封装对的方案数是( )。
A、44
B、24
C、10
D、20
5、3^2026 mod 100 的值是( )。
A、29
B、9
C、43
D、81
6、有 5 堆石子排成一行,重量依次为 4、1、3、2、5。每次只能把相邻的两堆合并成一堆,代价为这两堆重量之和。将所有石子合并成一堆的最小总代价是( )。
A、36
B、35
C、34
D、33
7、树状数组维护长度 n=16 的序列,查询前缀和 sum(11) 与单点修改 add(3, x) 分别需要访问树状数组中多少个下标( )。
A、3 和 4
B、4 和 4
C、3 和 5
D、4 和 3
8、有向无环图 G 顶点集为 {1, 2, 3, 4},边集为 {(1,2), (1,3)},顶点 4 与任何顶点均不相邻。该图不同的拓扑序共有多少种( )。
A、12
B、8
C、4
D、6
9、某分治算法满足 T(n) = T(n/3) + T(2n/3) + Θ(n),T(1)=O(1),则 T(n) 是( )。
A、Θ(n log n)
B、Θ(n²)
C、Θ(n^1.5)
D、Θ(n)
10、无根树含 9 个结点(编号 1—9),边集为 {(1,2),(1,3),(2,4),(2,5),(3,6),(6,7),(7,8),(5,9)}。该树的直径(以边数计)与重心分别是( )。
A、直径 6,重心为结点 3
B、直径 7,重心为结点 2
C、直径 8,重心为结点 1
D、直径 7,重心为结点 1
11、一张有向图缩点后得到的有向无环图含 6 个顶点,其中入度为 0 的顶点有 3 个,出度为 0 的顶点有 4 个。为使原图变成强连通图,至少需要添加多少条有向边( )。
A、7
B、6
C、4
D、3
12、含 6 个结点的不同形态的二叉树共有多少棵(结点不带标号,区分左右子树)( )。
A、42
B、429
C、132
D、720
13、字符串 S="ababaabab",其所有既是真前缀又是真后缀的子串(非空)的长度之和是( )。
A、4
B、6
C、7
D、5
14、用归并排序统计逆序对,合并部分核心代码为 if(a[i] <= a[j]) tmp[k++] = a[i++]; else { tmp[k++] = a[j++]; ans += mid - i + 1; }。若把判断条件中的 a[i] <= a[j] 改成 a[i] < a[j],则 ans 统计出的结果( )。
A、完全不变
B、变为原来的两倍
C、变为满足 i<j 且 a[i]≥a[j] 的数对个数
D、变为原来的一半
15、执行 power(2, 100, 1000) 调用下列函数,返回值是( )。
A、576
B、376
C、976
D、176
16、
阅读程序(1)
阅读下列程序:
程序输入不超过数组或字符串定义的范围;判断题正确填 √,错误填 ×。
说明:输入保证为一个长度恰为 32 的 '0'/'1' 字符串。
① 当输入为 32 个 '0' 时,程序输出 12 个 0。( )
A、正确
B、错误
17、(程序见第16题)程序运行结束后,数组 a 中下标从 0 到 31 的元素一定全部为 0。( )
A、正确
B、错误
18、(程序见第16题)若将第 12—14 行(为 a[32] 到 a[43] 补 0 的循环)删除,会改变程序输出的结果。( )
A、正确
B、错误
19、(程序见第16题)关于第 6 行定义的数组 gen,下列说法正确的是( )。
A、gen 共有 12 个元素,表示一个 12 位的除数
B、gen 共有 13 个元素,表示一个 13 位的被除数
C、gen 共有 13 个元素,其中 gen[0] 是除数的最高位
D、gen 共有 13 个元素,其中 gen[12] 是除数的最高位
20、(程序见第16题)该程序实现的功能,最准确的说法是( )。
A、将输入的 32 位串看成二进制数 M,输出 M 与 13 位二进制数 1100000001111 按位异或的结果
B、将输入串视为 32 位二进制数 M,在其后补 12 个 0(即计算 M×2^12),再对它做模 2 除法求余数,并输出 12 位余数
C、对输入的 32 位串逐位取反并输出结果
D、统计输入串中 1 的个数,并把该个数用 12 位二进制表示后输出
21、(程序见第16题)若把第 16 行 if (a[i] == 0) continue; 删除,说法正确的是( )。
A、程序输出的结果不会改变
B、可能造成程序运行错误
C、程序能够正常输出一个 12 位 '0'/'1' 串,但是输出结果与输入的 s 无关
D、程序运行结束后,a[0] 的值一定为 0
22、
阅读程序(2)
阅读下列程序:
说明:保证 1≤n≤100000,每次查询满足 1≤L≤R≤n,且数组 a 的元素均为正整数。
当 n=5,a={4,2,6,3,3},且仅有一次查询 L=2, R=5 时,输出为 1。( )
A、正确
B、错误
23、(程序见第22题)当某次查询的区间长度为 1(即 L=R)时,该次查询的输出一定等于 a[L]。( )
A、正确
B、错误
24、(程序见第22题)任意一次查询的输出结果一定不小于该查询区间内的最小值。( )
A、正确
B、错误
25、(程序见第22题)对于 j≥1,数组 dp[i][j] 保存的是( )。
A、从 a[i] 开始连续 j 个数的最大公约数
B、从 a[i] 开始连续 2^j 个数的最大公约数
C、a[i] 与 a[j] 的最大公约数
D、从 a[1] 到 a[i] 的最大公约数
26、(程序见第22题)若把一次求最大公约数的运算视为 O(1),则第 17—22 行建表过程的时间复杂度为( )。
A、Θ(n)
B、Θ(n log n)
C、Θ(n²)
D、Θ(mn)
27、(程序见第22题)设 x 为一次查询的区间长度(即 x=R−L+1),则使得 lg[x]=5 的 x 的取值范围是( )。
A、[16,31]
B、[17,32]
C、[32,63]
D、[33,64]
28、
阅读程序(3)
说明:输入第一行为结点个数 n,第二行为 n−1 个整数,依次表示结点 2—n 的父结点编号,满足 2≤n≤10000 且 1≤fa[i]<i,根结点为 1。
当 n=5,fa[2]∼fa[5]={1,2,3,4} 时,程序输出 4。( )
A、正确
B、错误
29、(程序见第28题)程序输出前,f[1] 的值一定等于 ans 的值。( )
A、正确
B、错误
30、(程序见第28题)将第 10—12 行与第 13—15 行两个 if 语句的顺序交换后,程序输出结果不受影响。( )
A、正确
B、错误
31、(程序见第28题)程序输出的 ans 表示的是( )。
A、树中距离最远的两个结点之间路径所经过的边数
B、根结点 1 到最远叶子结点之间路径所经过的边数
C、树中叶子结点的个数
D、所有结点的父结点编号之和
32、(程序见第28题)当 n=7,fa[2]∼fa[7]={1,1,2,2,3,3} 时,输出为( )。
A、2
B、3
C、4
D、5
33、(程序见第28题)当 n=10,满足输出为 9 的合法输入种类数为( )。
A、0
B、9
C、256
D、512
34、
完善程序
(1)平衡路线
给定一张有 n 个顶点、m 条边的无向图,每条边带有符号 '+' 或 '-'。对于一条从顶点 s 到顶点 t 的路线,允许重复经过顶点和边。定义路线的权值为 |n₊ − n₋|(n₊、n₋ 分别为经过的 '+' 边数和 '-' 边数)。请计算从 s 到 t 的路线的最小权值;若不存在路线,输出 −1。以下程序通过 BFS 求出最小权值。
① 处应填( )。
A、op[0] == '+' ? 0 : 1
B、op[0] == '+'
C、op[0] == '+' ? 1 : -1
D、op[0] == '-' ? 1 : 0
35、(程序见第34题)② 处应填( )。
A、hh < n
B、tt < n
C、hh <= tt
D、hh < tt
36、(程序见第34题)③ 处应填( )。
A、d[y] + 1
B、d[x] + 1
C、d[x]
D、d[x] - 1
37、(程序见第34题)④ 处应填( )。
A、c[y] == c[x]
B、w[i] == 1
C、c[y] != c[x]
D、d[y] + 1 != d[x]
38、(程序见第34题)⑤ 处应填( )。
A、ok && c[s] == c[t]
B、ok && c[s] != c[t]
C、!ok || c[s] == c[t]
D、!ok && c[s] != c[t]
39、
完善程序(2)标准答案构造
有 n 名学生参加考试,考试共有 m 道选择题,每道题只有 A、B 两个选项。第 i 名学生的答案用
一个长度为 m、仅包含 A 和 B 的字符串表示。若最终公布的标准答案与该学生在某道题上的答案
相同,该学生在这道题上得 1 分,否则不得分;记第 i 名学生最终总分为 r_i。给定每名学生对应
的数值 x_i,需要构造一份标准答案,使 ∑|r_i − x_i| 尽可能大。可辨认数据范围:1≤m≤300,
0≤x_i≤m;学生数 n 的范围被遮挡,程序枚举 2^n 个状态,原卷具体数字无法确认。从符号选择
的角度处理绝对值之和。
① 处应填( )。
A、2 * x[i] - m
B、-m + 2 * x[i] + 1
C、m - 2 * x[i]
D、m + 2 * x[i]
40、(程序见第39题)② 处应填( )。
A、mask | (mask >> 1)
B、mask ^ (mask >> 1)
C、mask & (mask >> 1)
D、mask ^ ((mask >> 1) + 1)
41、(程序见第39题)③ 处应填( )。
A、__builtin_ctzll(d) + 1
B、__builtin_popcountll(d)
C、__builtin_ctzll(g)
D、__builtin_ctzll(d)
42、(程序见第39题)④ 处应填( )。
A、2ll * s[k] * c[k]
B、s[k] * c[k]
C、2ll * (s[k] - c[k])
D、2ll * c[k]
43、(程序见第39题)⑤ 处应填( )。
A、v >= (n & 1)
B、v > (n & 1)
C、v + (n & 1) >= 0
D、v * (n & 1) >= 0
关闭
更多问卷
复制此问卷