林老师 · 客观题题库 · CSP-S 学习卷 L07 · 哈希表

CSP-S 学习卷 L07 · 哈希表

提高级数据结构 · 哈希函数 / 冲突处理(线性探查·链地址)/ 装载因子
真题
复刻
试卷编号LEARN-S-07
题目总数107 题 · 112 分
试卷类型客观题
考生须知:
① 本卷共 5 大部分,合计 107 题 · 112 分,全部为客观题;
② 试卷右上角设有 「提交答卷」「重置考试」 按钮,提交后系统自动判分并显示答题正确情况,请确认全部作答后再行提交;
③ 试卷不显示答案,提交后方可查看每题作答与正确答案的对照;
④ 答卷进度会保留在本地缓存中,刷新或再次打开仍可继续作答;
⑤ 本卷仅供学生练习使用;请勿用于其他用途;题面有问题请联系:i64coder@163.com。

判 分 报 告

0 / 112 分
0
答 对 · 得 0
0
答 错 · 失 0
当前筛选下没有题目

壹 概念建立 · 哈希函数与冲突

25 QUESTIONS · 1 POINT EACH
第 1 题 单选 未作答

哈希表(散列表)的核心思想是?

(1 分)
原创复习题 | 考点:哈希表的核心思想
第 2 题 单选 未作答

哈希函数 h(x) 的作用是?

(1 分)
原创复习题 | 考点:哈希函数的作用
第 3 题 单选 未作答

两个不同关键字 x≠y 但 h(x)=h(y),称为?

(1 分)
原创复习题 | 考点:哈希冲突的定义
第 4 题 单选 未作答

理想情况下(无冲突),哈希表查找一个元素的时间复杂度是?

(1 分)
原创复习题 | 考点:哈希表查找的时间
第 5 题 单选 未作答

用哈希表查找关键字 x 的正确步骤是?

(1 分)
原创复习题 | 考点:哈希表查找的步骤
第 6 题 单选 未作答

哈希表存储的键值对中,哈希函数作用在哪个上?

(1 分)
原创复习题 | 考点:哈希的键与值
第 7 题 单选 未作答

哈希表的大小(地址范围)通常是?

(1 分)
原创复习题 | 考点:哈希表的地址空间
第 8 题 单选 未作答

为什么哈希冲突(不同键同地址)不可避免?

(1 分)
原创复习题 | 考点:哈希冲突不可避免
第 9 题 单选 未作答

哈希表本质上是一张?

(1 分)
原创复习题 | 考点:哈希与数组的关系
第 10 题 单选 未作答

哈希表已存 n 个键、容量 m,以下哪个关系正确?

(1 分)
原创复习题 | 考点:哈希的装载
第 11 题 单选 未作答

理想哈希表(无冲突)的查找、插入、删除时间复杂度都是?

(1 分)
原创复习题 | 考点:理想哈希查找
第 12 题 单选 未作答

哈希表的缺点之一是?

(1 分)
原创复习题 | 考点:哈希与有序性
第 13 题 单选 未作答

评价哈希函数好坏的首要标准是?

(1 分)
原创复习题 | 考点:哈希函数的均匀性
第 14 题 单选 未作答

下列最适合用哈希表的问题是?

(1 分)
原创复习题 | 考点:哈希的应用场景
第 15 题 单选 未作答

数组二分查找是 O(log n),哈希表查找是 O(1),哈希一定更好吗?

(1 分)
原创复习题 | 考点:哈希 vs 二分查找
第 16 题 单选 未作答

哈希表相比普通数组,主要多出的部分是?

(1 分)
原创复习题 | 考点:哈希表的内存
第 17 题 单选 未作答

同一个键在同一张哈希表,多次调用 h(x) 的结果?

(1 分)
原创复习题 | 考点:哈希的确定性
第 18 题 单选 未作答

用哈希表做去重,做法是?

(1 分)
原创复习题 | 考点:哈希与去重
第 19 题 单选 未作答

C++ 中 unordered_map 的键可以是?

(1 分)
原创复习题 | 考点:哈希的键类型
第 20 题 单选 未作答

C++ 声明 unordered_map m; 后,m[5] 首次访问时?

(1 分)
原创复习题 | 考点:哈希表初始化
第 21 题 单选 未作答

统计 n 个数的出现次数,用 unordered_map 的时间复杂度是?

(1 分)
原创复习题 | 考点:哈希与计数
第 22 题 单选 未作答

需要查询区间 [a,b] 内所有键时,应选?

(1 分)
原创复习题 | 考点:哈希与范围查询
第 23 题 单选 未作答

h(x) = x % 表长,表长取 7 比取 8 通常更好,因为?

(1 分)
原创复习题 | 考点:哈希函数的取模
第 24 题 单选 未作答

装载因子 α 接近 1 时(开放地址),查找性能会?

(1 分)
原创复习题 | 考点:哈希的存储密度
第 25 题 单选 未作答

链地址法中删除一个元素,做法是?

(1 分)
原创复习题 | 考点:哈希表的删除

贰 模板与代码 · 哈希函数设计

25 QUESTIONS · 1 POINT EACH
第 26 题 单选 未作答

哈希表地址 0~10,下列哪个哈希函数对 (2,7,10,18) 都产生不同地址(无冲突)?

(1 分)
原创复习题 | 考点:取模哈希函数的性质
第 27 题 单选 未作答

x % 表长 做哈希函数时,表长最好选?

(1 分)
原创复习题 | 考点:哈希函数取模时的表长选择
第 28 题 单选 未作答

冲突处理「开放地址法·线性探查」的做法是?

(1 分)
原创复习题 | 考点:开放地址法:线性探查
第 29 题 单选 未作答

表大小 13、h=x%13,依次插入 18、26、35、9、68、74。插入 74 后它落在哪个位置?

(1 分)
原创复习题 | 考点:线性探查的模拟(2025 真题)
第 30 题 单选 未作答

冲突处理「链地址法(拉链法)」的做法是?

(1 分)
原创复习题 | 考点:链地址法(拉链法)
第 31 题 单选 未作答

开放地址·线性探查的插入函数:

01int hash_table[11];
02bool used[11];            // used[i] 标记位置 i 是否被占
03void insert(int x) {
04    int p = x % 11;
05    while (used[p]) p = (p + 1) % 11;   // 线性探查,回绕
06    used[p] = true;
07    hash_table[p] = x;
08}

依次 insert 6、17、28,最后 28 存储在哪个位置?

(1 分)
原创复习题 | 考点:模板代码:线性探查 insert 追踪
第 32 题 单选 未作答

同上的线性探查表,查找函数:

01int find_pos(int x) {
02    int p = x % 11;
03    while (used[p] && hash_table[p] != x) p = (p + 1) % 11;
04    if (used[p] && hash_table[p] == x) return p;
05    return -1;
06}

已知表中 6 在 [6]、17 在 [7],查找 28(28%11=6,6、7 已占但都不是 28)会返回?

(1 分)
原创复习题 | 考点:模板代码:线性探查 find 追踪
第 33 题 单选 未作答

链地址法(拉链法)插入:

01vector<int> bucket[11];
02void insert(int x) {
03    bucket[x % 11].push_back(x);
04}

依次插入 6、17、28、39,哪个桶的链最长?

(1 分)
原创复习题 | 考点:模板代码:链地址法 insert 追踪
第 34 题 单选 未作答

C++ 的 unordered_map 使用:

01unordered_map<int, int> cnt;
02for (int x : {3, 1, 4, 1, 5, 9, 3}) cnt[x]++;
03for (auto& p : cnt) cout << p.first << ':' << p.second << ' ';

下面哪个输出是可能的(哈希表遍历顺序不保证有序)?

(1 分)
原创复习题 | 考点:模板代码:unordered_map 使用追踪
第 35 题 单选 未作答

关于「开放地址法」与「链地址法」的比较,正确的是?

(1 分)
原创复习题 | 考点:开放地址 vs 链地址
第 36 题 单选 未作答

链地址法查找:

01vector<int> bucket[11];
02bool find(int x) {
03    for (int v : bucket[x % 11])
04        if (v == x) return true;
05    return false;
06}

bucket[6] 里已有 {6,17},find(28) 会?

(1 分)
原创复习题 | 考点:模板代码:链地址 find 追踪
第 37 题 单选 未作答

二次探查的插入:

01void insert2(int x) {
02    int p = x % 11, k = 1;
03    while (used[p]) { p = (x % 11 + k * k) % 11; k++; }
04    used[p] = true; hash_table[p] = x;
05}

对比线性探查,二次探查的特点是?

(1 分)
原创复习题 | 考点:模板代码:二次探查(平方探查)
第 38 题 单选 未作答

二次探查的一个潜在问题是?

(1 分)
原创复习题 | 考点:模板代码:二次探查可能失败
第 39 题 单选 未作答

冲突处理「再哈希法(双重哈希)」的做法是?

(1 分)
原创复习题 | 考点:模板代码:再哈希法
第 40 题 单选 未作答

哈希表扩容重建:

01void rehash() {
02    int old[11], oc = 0;
03    for (int i = 0; i < 11; i++) if (used[i]) old[oc++] = hash_table[i];
04    // 新表容量 23,全部清空
05    for (int i = 0; i < 23; i++) used[i] = false;
06    for (int i = 0; i < oc; i++) insert(old[i]);   // 用新表重新插入
07}

为什么扩容后要重新插入而不是直接搬数据?

(1 分)
原创复习题 | 考点:模板代码:扩容 rehash 追踪
第 41 题 单选 未作答

给自定义结构体做哈希:

01struct Point { int x, y; };
02struct PHash {
03    size_t operator()(const Point& p) const {
04        return p.x * 31 + p.y;
05    }
06};
07unordered_map<Point, int, PHash> mp;

其中 PHash 的作用是?

(1 分)
原创复习题 | 考点:模板代码:自定义哈希结构体
第 42 题 单选 未作答

unordered_map 删除:

01unordered_map<string, int> cnt;
02cnt["a"] = 1; cnt["b"] = 2; cnt["c"] = 3;
03cnt.erase("b");
04cout << cnt.size();

输出是?

(1 分)
原创复习题 | 考点:模板代码:erase 删除追踪
第 43 题 单选 未作答

C++ 中查看 unordered_map 当前装载因子用?

(1 分)
原创复习题 | 考点:模板代码:load_factor 查询
第 44 题 单选 未作答

unordered_map m 有 100 个键、load_factor 约 0.5,它的 bucket_count 约是?

(1 分)
原创复习题 | 考点:模板代码:bucket_count 追踪
第 45 题 单选 未作答

unordered_map 的 begin()/end() 遍历顺序?

(1 分)
原创复习题 | 考点:模板代码:遍历的迭代器
第 46 题 单选 未作答

为什么「数组下标是 int」而「哈希函数返回值」可以很大?

(1 分)
原创复习题 | 考点:模板代码:哈希与数组下标
第 47 题 单选 未作答

统计字符出现次数:

01string s = "aabac";
02int cnt[26] = {};
03for (char c : s) cnt[c - 97]++;   // 97 是 a 的 ASCII
04cout << cnt[0] << " " << cnt[1] << " " << cnt[2];

输出是?

(1 分)
原创复习题 | 考点:模板代码:计数技巧
第 48 题 单选 未作答

用数组计数时遇到负数元素(如 -5),直接 a[-5] 会越界,正确处理是?

(1 分)
原创复习题 | 考点:模板代码:哈希与负下标
第 49 题 单选 未作答

字符串哈希用 unsigned long long 自然溢出(自动 mod 2^64),好处是?

(1 分)
原创复习题 | 考点:模板代码:哈希函数溢出
第 50 题 单选 未作答

unordered_set(哈希集合)与 unordered_map(哈希映射)的区别是?

(1 分)
原创复习题 | 考点:模板代码:哈希与 set

叁 应用与变体 · 装载因子与复杂度

26 QUESTIONS · 1 POINT EACH
第 51 题 单选 未作答

哈希表有 n 个键值对、容量 m,装载因子 α = n/m。α 的含义是?

(1 分)
原创复习题 | 考点:装载因子的定义
第 52 题 单选 未作答

开放地址法解决冲突,最坏情况下(如表几乎满、α 接近 1)查找一个元素的时间复杂度是?

(1 分)
原创复习题 | 考点:开放地址法查找的最坏复杂度
第 53 题 单选 未作答

装载因子 α 增大时,哈希表查找的平均耗时通常?

(1 分)
原创复习题 | 考点:平均查找长度的直觉
第 54 题 单选 未作答

下列场景中,最适合用哈希表的是?

(1 分)
原创复习题 | 考点:哈希表的实际应用
第 55 题 单选 未作答

把字符串映射成整数的「字符串哈希」,最常见的构造是?

(1 分)
原创复习题 | 考点:字符串哈希(哈希应用延伸)
第 56 题 单选 未作答

地址 0~10,下列哈希函数对 (3,7,14,21) 都产生不同地址的是?

(1 分)
原创复习题 | 考点:经典:无冲突哈希函数选择
第 57 题 单选 未作答

表 0~10,h(x)=x² mod 11,插入 6、7,7 落哪个地址?

(1 分)
原创复习题 | 考点:经典:平方哈希函数
第 58 题 单选 未作答

表 0~10、h(x)=x² mod 11、线性探查(回绕),依次插入 0,1,2,3,4,5,6,7,7 落哪个地址?

(1 分)
原创复习题 | 考点:经典:线性探查 2021 真题变体
第 59 题 单选 未作答

开放地址法查找的平均探测次数与装载因子 α 的关系(线性探查)约是?

(1 分)
原创复习题 | 考点:经典:装载因子与查找期望
第 60 题 单选 未作答

链地址法,n 个键、m 个桶,平均每条链长度是?

(1 分)
原创复习题 | 考点:经典:链地址的平均链长
第 61 题 单选 未作答

C++ unordered_map 单次 find 的最坏时间复杂度是?

(1 分)
原创复习题 | 考点:经典:哈希与 unordered_map 复杂度
第 62 题 单选 未作答

判断两个字符串是否相等,用字符串哈希的优势是?

(1 分)
原创复习题 | 考点:经典:字符串哈希应用
第 63 题 单选 未作答

n=10⁶ 的整数去重,哈希(unordered_set)比排序去重快在?

(1 分)
原创复习题 | 考点:经典:哈希去重 vs 排序去重
第 64 题 单选 未作答

统计「值域大且稀疏」(如 10⁵ 个数、值域 10⁹)的出现次数,用?

(1 分)
原创复习题 | 考点:经典:哈希表 vs 数组计数
第 65 题 单选 未作答

哈希函数的「雪崩效应」指?

(1 分)
原创复习题 | 考点:经典:哈希与随机数
第 66 题 单选 未作答

「哈希碰撞攻击」威胁的是?

(1 分)
原创复习题 | 考点:经典:哈希碰撞攻击
第 67 题 单选 未作答

C++ unordered_map 默认 max_load_factor 约?

(1 分)
原创复习题 | 考点:经典:哈希表扩容阈值
第 68 题 单选 未作答

链地址法删除一个键后,查找其他键会?

(1 分)
原创复习题 | 考点:经典:哈希表删除后查找
第 69 题 单选 未作答

滑动窗口内统计元素种类数,用哈希(unordered_map)维护的优势是?

(1 分)
原创复习题 | 考点:经典:哈希与滑动窗口
第 70 题 单选 未作答

「找两数之和 = target」用哈希的做法是?

(1 分)
原创复习题 | 考点:经典:两数之和与哈希
第 71 题 单选 未作答

求数组中最长连续整数序列长度,用 unordered_set 的做法(对每个 x,若 x-1 不在 set 则从 x 向后数)的时间复杂度是?

(1 分)
原创复习题 | 考点:经典:哈希与最长连续序列
第 72 题 单选 未作答

哈希函数取 h(x)=x(恒等映射)时,哈希表退化为?

(1 分)
原创复习题 | 考点:经典:哈希函数 h(x)=x 的特例
第 73 题 单选 未作答

理想哈希函数让 n 个键分布到 m 个桶,每桶平均键数是?

(1 分)
原创复习题 | 考点:经典:哈希值分布
第 74 题 单选 未作答

实现「英文单词 → 中文释义」的字典,最适合用?

(1 分)
原创复习题 | 考点:经典:哈希与字典
第 75 题 单选 未作答

找出数组中第一个重复出现的元素,用哈希的做法?

(1 分)
原创复习题 | 考点:经典:哈希与重复元素
第 76 题 单选 未作答

哈希表常用于实现缓存(如记忆化搜索的查表),原因是?

(1 分)
原创复习题 | 考点:经典:哈希表与缓存

肆 易错与综合

25 QUESTIONS · 1 POINT EACH
第 77 题 单选 未作答

表大小 10、h=x%10,依次插入 71、23、73、99、44、79、89,插入 89 后它落在哪个地址?(线性探查,表尾回绕到 0)

(1 分)
原创复习题 | 考点:易错:线性探查的回绕
第 78 题 单选 未作答

「线性探查」与「二次探查(平方探查)」的区别是?

(1 分)
原创复习题 | 考点:易错:探查与平方探查区分
第 79 题 单选 未作答

C++ 中 unordered_map(哈希)与 map(红黑树),下列说法正确的是?

(1 分)
原创复习题 | 考点:综合:哈希表 vs 平衡树
第 80 题 单选 未作答

开放地址法(线性探查)删除一个元素时,通常不能直接把位置置空,因为?

(1 分)
原创复习题 | 考点:综合:哈希表的删除
第 81 题 单选 未作答

哈希表在装载因子超过阈值时通常「扩容」(翻倍重建),这样做的目的是?

(1 分)
原创复习题 | 考点:综合:哈希的均摊视角
第 82 题 单选 未作答

开放地址法查找时遇到空位(used=false)意味着?

(1 分)
原创复习题 | 考点:易错:探查到空位
第 83 题 单选 未作答

开放地址法删除元素后,直接置空会导致?

(1 分)
原创复习题 | 考点:易错:开放地址删除
第 84 题 单选 未作答

用 m[key] 查询不存在的键,会?

(1 分)
原创复习题 | 考点:易错:unordered_map 的 operator[]
第 85 题 单选 未作答

遍历 unordered_map 时删除当前元素,正确做法是?

(1 分)
原创复习题 | 考点:易错:哈希表遍历修改
第 86 题 单选 未作答

unordered_map<long long,int> 用 long long 键,会?

(1 分)
原创复习题 | 考点:易错:哈希与 long long 键
第 87 题 单选 未作答

用 double 作 unordered_map 的键,风险是?

(1 分)
原创复习题 | 考点:易错:哈希与浮点键
第 88 题 单选 未作答

unordered_map 扩容(rehash)后?

(1 分)
原创复习题 | 考点:易错:哈希扩容后的迭代器
第 89 题 单选 未作答

依赖 unordered_map 遍历顺序写逻辑(如取第一个元素)是?

(1 分)
原创复习题 | 考点:易错:哈希的桶序依赖
第 90 题 单选 未作答

「子数组和为 k 的个数」用哈希 + 前缀和,哈希存的是什么?

(1 分)
原创复习题 | 考点:综合:哈希 + 前缀和
第 91 题 单选 未作答

用 unordered_map 实现邻接表(稀疏图,点编号很大),好处是?

(1 分)
原创复习题 | 考点:综合:哈希 + 图
第 92 题 单选 未作答

状压 DP 用「状态整数 → 值」的缓存,用什么最快?

(1 分)
原创复习题 | 考点:综合:哈希 + 状态压缩
第 93 题 单选 未作答

「把异位词(字母相同顺序不同)分到一组」用哈希,键取?

(1 分)
原创复习题 | 考点:综合:哈希 + 字符串分组
第 94 题 单选 未作答

滑动窗口内元素是否重复,用 unordered_set 维护,进出窗口复杂度?

(1 分)
原创复习题 | 考点:综合:哈希 + 滑动窗口去重
第 95 题 单选 未作答

求众数(出现次数最多的数),哈希做法的复杂度?

(1 分)
原创复习题 | 考点:综合:哈希 + 众数
第 96 题 单选 未作答

「最长不重复字符子串」用哈希(记录字符最后出现位置)的时间复杂度?

(1 分)
原创复习题 | 考点:综合:哈希 + 最长不重复子串
第 97 题 单选 未作答

计数排序的计数数组本质上是?

(1 分)
原创复习题 | 考点:综合:哈希 + 计数排序比较
第 98 题 单选 未作答

需要频繁「求第 k 小的键」时,应选?

(1 分)
原创复习题 | 考点:综合:哈希 vs 平衡树场景
第 99 题 单选 未作答

判断两个大文件内容是否相同,先比哈希值的做法?

(1 分)
原创复习题 | 考点:综合:哈希 + 大数判重
第 100 题 单选 未作答

「判断 n 个数两两不同」用哈希的最坏复杂度是?

(1 分)
原创复习题 | 考点:综合:哈希 + 邻接判断
第 101 题 单选 未作答

「含所有目标字符的最短子串」用哈希(目标字符计数)+ 滑窗,复杂度?

(1 分)
原创复习题 | 考点:综合:哈希 + 最小窗口

真题检验 · 历年真题(原样罗列)

6 QUESTIONS FROM CSP CSP-S
第 102 题 单选 未作答

(2,7,10,18)(2,7,10,18) 分别存储到某个地址区间为 0100\sim10 的哈希表中,如果哈希函数 h(x)=h(x)=( ),将不会产生冲突,其中 amodba\bmod b 表示 aa 除以 bb 的余数。

(1 分)
CSP-S 2020 · 单选 第5题 | 知识点 哈希表
第 103 题 单选 未作答

现有一个地址区间为 0100\sim10 的哈希表,对于出现冲突的情况,会往后找第一个空的地址存储(到 1010 冲突了就从 00 开始往后)。现在要依次存储 (0,1,2,3,4,5,6,7)(0,1,2,3,4,5,6,7),哈希函数为 h(x)=x2mod11h(x)=x^2\bmod 11。请问 77 存储在哈希表哪个地址中( )。

(1 分)
CSP-S 2021 · 单选 第6题 | 知识点 哈希表
第 104 题 单选 未作答

给定地址区间为 090\sim9 的哈希表,哈希函数为 h(x)=x%10h(x)=x\%10,采用线性探查的冲突解决策略(对于出现冲突情况,会往后探查第一个空的地址存储;若地址 99 冲突了则从地址 00 重新开始探查)。哈希表初始为空表,依次存储 (71, 23, 73, 99, 44, 79, 89) 后,请问 89 存储在哈希表哪个地址中。( )

(1 分)
CSP-S 2022 · 单选 第12题 | 知识点 哈希表
第 105 题 单选 未作答

在设计一个哈希表时,为了减少冲突,需要使用适当的哈希函数和冲突解决策略。已知某哈希表中有 nn 个键值对,表的装载因子为 aa0<a10 < a \le 1)。在使用开放地址法解决冲突的过程中,最坏情况下查找一个元素的时间复杂度为?

(1 分)
CSP-S 2024 · 单选 第10题 | 知识点 哈希表
第 106~111 题 阅读程序 (共 6 分) 未作答

1   #include <iostream>
2  #include <cstring>
3  #include <algorithm>
4  using namespace std;
5 
6  const int maxn = 1000000+5;
7  const int P1 = 998244353, P2 = 1000000007;
8  const int B1 = 2, B2 = 31;
9  const int K1 = 0, K2 = 13;
10 
11  typedef long long ll;
12 
13  int n;
14  bool p[maxn];
15  int p1[maxn], p2[maxn];
16 
17  struct H {
18      int h1, h2, l;
19      H(bool b = false) {
20          h1 = b + K1;
21          h2 = b + K2;
22          l = 1;
23      }
24      H operator + (const H & h) const {
25          H hh;
26          hh.l = l + h.l;
27          hh.h1 = (1ll * h1 * p1[h.l] + h.h1) % P1;
28          hh.h2 = (1ll * h2 * p2[h.l] + h.h2) % P2;
29          return hh;
30      }
31      bool operator == (const H & h) const {
32          return l == h.l && h1 == h.h1 && h2 == h.h2;
33      }
34      bool operator < (const H & h) const {
35          if (l != h.l) return l < h.l;
36          else if (h1 != h.h1) return h1 < h.h1;
37          else return h2 < h.h2;
38      }
39  } h[maxn];
40 
41  void init() {
42      memset(p, 1, sizeof(p));
43      p[0] = p[1] = false;
44      p1[0] = p2[0] = 1;
45      for (int i = 1; i <= n; ++i) {
46          p1[i] = (1ll * B1 * p1[i-1]) % P1;
47          p2[i] = (1ll * B2 * p2[i-1]) % P2;
48          if (!p[i]) continue;
49          for (int j = 2 * i; j <= n; j += i) {
50              p[j] = false;
51          }
52      }
53  }
54 
55  int solve() {
56      for (int i = n; i; --i) {
57          h[i] = H(p[i]);
58          if (2 * i + 1 <= n) {
59              h[i] = h[2 * i] + h[i] + h[2 * i + 1];
60          } else if (2 * i <= n) {
61              h[i] = h[2 * i] + h[i];
62          }
63      }
64      cout << h[1].h1 << endl;
65      sort(h + 1, h + n + 1);
66      int m = unique(h + 1, h + n + 1) - (h + 1);
67      return m;
68  }
69 
70  int main() {
71      cin >> n;
72      init();
73      cout << solve() << endl;
74  }

106.

假设程序运行前能自动将 maxn 改为 n + 1,所实现的算法的时间复杂度是 O(nlogn)O(n \log n)。( )

(1 分)
107.

时间开销的瓶颈是 init() 函数。( )

(1 分)
108.

若修改常数 B1K1 的值,该程序可能会输出不同的结果。( )

(1 分)
109.

solve() 函数中,h[] 的合并顺序可以看作是:( )

(1 分)
110.

输入 10,输出的第一行是?( )

(1 分)
111.

输入 16,输出的第二行是?( )

(1 分)
CSP-S 2024 · 阅读程序 第27-27-32题 | 知识点 哈希表
第 112 题 单选 未作答

在一个大小为 1313 的哈希表中,使用闭散列法的线性探查来解决冲突。哈希函数为 H(key)=keymod13H(\text{key}) = \text{key} \bmod 13。依次插入关键字 1818262635359968687474。插入 7474 后,它最终被放置在哪个索引位置?

(1 分)
CSP-S 2025 · 单选 第6题 | 知识点 哈希表