2024年12月CCF—GESP(C++七级)编程能力等级认证试卷
七级
2024
2025-06-03 14:39:58
81次
一、单选题
下面程序的输出为( )。
#include <iostream>
#define N 10
using namespace std;
int h[N];
int main() {
h[0] = h[1] = 1;
for (int n = 2; n < N; n++)
for (int j = 0; j < n; j++)
h[n] += h[j] * h[n - j - 1];
cout << h[6] << endl;
return 0;
} | A. 132 |
B. 1430 |
| C. 16796 |
D. 结果是随机的。 |
【知识点】 CCF—GESP C++七级
一个哈希表,包括n个位置(分别编号0~(n-1)),每个位置最多仅能存储一个元素。该哈希表只有插入元素和查询两种操作,没有删除或修改元素的操作。以下说法错误的是( )。
| A. 如果哈希函数取值范围为0 ~ (n-1),且当发生哈希函数碰撞时循环向后寻找空位,则查询操作的最差时间复杂度为 O(n)。(“循环向后”指:0向后一位为1,1向后一位为2,……,(n-2)向后一位为(n-1),(n-1)向后一位为0) |
B. 如果哈希函数取值范围为0 ~ (n-1),且当发生哈希函数碰撞时仅循环向后一个位置寻找空位,则查询操作的最差时间复杂度为 O(1)。 |
| C. 如果哈希函数取值范围为0 ~ (m-1)(m < n),且当发生哈希函数碰撞时仅在m ~ (n-1)的范围内寻找空位,则查询操作的最差时间复杂度为 O(n−m)。 |
D. 查询操作时,如果发现查询元素经哈希函数对应的位置为空位,该查询元素仍可能出现在哈希表内。 |
【知识点】 CCF—GESP C++七级
二、判断题
三、编程题
燃烧
时间限制:1.0 s
内存限制:512.0 MB
题面描述
小杨有一棵包含 n 个节点的树,其中节点的编号从 1 到 n 。节点 i 的权值为 ai。
小杨可以选择一个初始节点引燃,每个燃烧的节点会将其相邻节点中权值严格小于自身权值的节点也引燃,火焰会在节点间扩散直到不会有新的节点被引燃。
小杨想知道在合理选择初始节点的情况下,最多可以燃烧多少个节点。
输入格式
第一行包含一个正整数 n ,代表节点数量。
第二行包含 n 个正整数 a1,a2,...,an,代表节点权值。
之后 n−1 行,每行包含两个正整数 ui,vi,代表存在一条连接节点 ui和 vi的边。
输出格式
输出一个正整数,代表最多燃烧的节点个数。
输入样例
5 6 2 3 4 5 1 2 2 3 2 5 1 4
输出样例
3

对于全部数据,保证有 1≤n≤105,1≤ai≤106。
【知识点】 CCF—GESP C++七级
武器购买
时间限制:1.0 s
内存限制:512.0 MB
题面描述
商店里有 n 个武器,第 i 个武器的强度为 pi,花费为 ci。
小杨想要购买一些武器,满足这些武器的总强度不小于 P ,总花费不超过 Q ,小杨想知道是否存在满足条件的购买方案,如果有,最少花费又是多少。
输入格式
第一行包含一个正整数 t ,代表测试数据组数。
对于每组测试数据,第一行包含三个正整数 n,P,Q,含义如题面所示。
之后 n 行,每行包含两个正整数 pi,ci,代表武器的强度和花费。
输出格式
对于每组测试数据,如果存在满足条件的购买方案,输出最少花费,否则输出 -1。
输入样例
3 3 2 3 1 2 1 2 2 3 3 3 4 1 2 1 2 2 3 3 1000 1000 1 2 1 2 2 3
输出样例
3 -1 -1

对于全部数据,保证有 1≤t≤10,1≤n≤100,1≤pi,ci,P,Q≤5×104。
【知识点】 CCF—GESP C++七级

