| 题号 | 题型 | 答案 | 考点 | 解题思路 |
|---|---|---|---|---|
| 第 1 题 | 选择题 | B | 基本数据类型、数据表示、变量与常量 | 看各类型的"取值范围":int 是 32 位(约 ±2.1e9),long long 是 64 位(约 ±9.2e18),而 float/double 是浮点数,尾数分别只有 23… |
| 第 2 题 | 选择题 | D | 进制与编码、数据表示、基础语法 | 十六进制转八进制最快的方法是"先一位拆四位成二进制,再从右每三位并成一位八进制",比先转十进制快且不易错。 |
| 第 3 题 | 选择题 | C | 运算符与表达式、运算符优先级、基础语法 | 按 C++ 整数运算的优先级手算:先乘除后加减,且整数除法向零取整——7/3 = 2,7%3 = 1。 |
| 第 4 题 | 选择题 | C | 栈(stack)、线性结构、枚举法 | 出入栈序列可以看成"堆栈筛":某个数要先出栈,就必须先把它压进去;一旦它出栈,比它晚压入的数只能压在它上面。 |
| 第 5 题 | 选择题 | B | 二叉树基础、树形结构、二叉树的遍历 | 完全二叉树按层序编号 1..n 后,编号 i ⌊n/2⌋ 的结点全是叶子;也可以按"最后一个非叶结点是 ⌊n/2⌋"直接得叶子数 = n − ⌊n/2⌋。 |
| 第 6 题 | 选择题 | D | 整数与整除、数论基础、计数原理 | 这是"容斥原理"求和:先分别算出 1~100 中所有 3 的倍数之和、5 的倍数之和,再减去被重复计算的 15 的倍数之和。等差数列求和公式 n(a₁+aₙ)/2 一步到位。 |
| 第 7 题 | 选择题 | D | 递推、数列基础、计数原理 | 设 f(i) 为从地面(第 0 级)走到第 i 级的走法数,则 f(0)=1,f(i)=f(i−1)+f(i−2)+f(i−3)(负数项取 0)。只要老老实实递推到 f(8) 即可… |
| 第 8 题 | 选择题 | C | BFS(广度优先搜索)、图的基本概念、模拟 | 严格按题面给的顺序"上、下、左、右"模拟 BFS 队列,把每次新入队的格子编号(1 是 S)。注意"E 第一次入队"就是问 E 是第几个被入队的格子。 |
| 第 9 题 | 选择题 | B | 最大公约数与最小公倍数、整数与整除、数论算法 | 60 = 2²×3×5。要让 gcd(n,60)=6,可令 n = 6k,则要求 gcd(k,10)=1(即 k 既不含因子 2 也不含因子 5),再从 6k ≤ 100 即 k … |
| 第 10 题 | 选择题 | A | 贪心算法、模拟、枚举法 | 面值是 1、4、6,凑 9 元。先试大面值:6+1+1+1 用 4 枚,4+4+1 只用 3 枚——枚举时按"用几枚 6 元"分类即可。 |
| 第 11 题 | 选择题 | A | 指针与引用、一维数组、指针与内存 | 先把 p 定位到 a[2],再用"p[i] 等价于 (p+i)"逐条改写赋值语句,特别注意第一条赋值已经把 a[1] 改掉了,后面读 a[1] 要用新值。 |
| 第 12 题 | 选择题 | D | 二分查找、复杂度分析、基础算法 | 二分查找的判定树是近似完全二叉树,最坏比较次数 = ⌊log₂n⌋ + 1;这里 n=1000,2^9 = 512 < 1000 ≤ 1024 = 2^10,所以是 10 次。 |
| 第 13 题 | 选择题 | C | 前缀和与差分、一维数组、整数与整除 | 前缀和数组的差分就是原数组:a[i] = s[i] − s[i−1],本题求 a[10] 只需算 s[10] − s[9],两个平方数一减即可。 |
| 第 14 题 | 选择题 | A | 其他数学、数学、排序基础 | 数轴上一组点,到它们距离之和最小的点就是"中位数"位置。7 个点排序后取第 4 个(7),再把距离全部加起来。 |
| 第 15 题 | 选择题 | B | 基础图论概念、图的基本概念、图形结构 | 握手定理:所有顶点的度数之和等于边数的 2 倍。先按度数把总度数算出来,再除以 2。 |
| 第 16 题 | 阅读程序 | ABC | 位运算、原码、反码与补码、循环结构 | 关键看第 11、12 行:if 分支和 else 分支各有一个 ++x(第 11 行在 else 里),所以每轮循环 x 必加 1;而 ++y(第 12 行)只在最低位为 1 时执… |
| 第 17 题 | 阅读程序 | ABC | 字符数组与字符串处理、高精度计算、循环结构 | 这是"高精度加法"的手写实现:把两个数逆序存进数组(下标 0 是个位),从低位往高位逐位相加并进位。最要紧的一点是输出循环从 max(a_len, b_len) 开始, 固定比最长… |
| 第 18 题 | 阅读程序 | BADC | DFS(深度优先搜索)、质数与合数、递归函数 | 程序在 DFS 枚举"右截断质数":每个数自己要是质数,且不断删去末位后剩下的数也都要是质数。每走到一个 ≥ n 的数就输出并停止往下扩展,所以输出的是"父结点 < n 且自身 ≥… |
| 第 19 题 | 完善程序 | DBC | 进制与编码、位运算、高精度计算 | mn进制转n进制:先整体×m再移位(×n),进位除n取模n。 |
| 第 20 题 | 完善程序 | BDCA | 分治算法、递归函数、字符数组与字符串处理 | 递归枚举所有连续分段方案。① 是把十六进制字符转成数值('0'~'9' 减 '0','A'~'F' 减 'A' 10);② 是当前段的右端点 r 从 l 枚举到 n ;③ 段平均值… |
建议按「限时做 → 对答案 → 读常见错误」三步走。先按考试的真实节奏做完,再回来看每一题的解析;尤其是"常见错误"那一段——它对应的是命题人反复设置的陷阱,读完能直接迁移到同类题上。
想做限时模考,可在 OI伴学 平台切换考试模式;错题会自动归集,并按考点推荐同类练习。