| 题号 | 题型 | 答案 | 考点 | 解题思路 |
|---|---|---|---|---|
| 第 1 题 | 选择题 | A | 计算机基础与编程环境、操作系统基础 | 看到'列出'二字直接锁定ls,这题就是考Linux命令语义记忆,别被cd和cp带偏。 |
| 第 2 题 | 选择题 | B | 数据表示、进制与编码 | 这题就是考二进制加法,直接把两个数竖式对齐,从最低位开始逐位相加,记住满二进一,哪一位进位了下一位就加1,算完再快速转十进制验算一下,就能稳稳选对。 |
| 第 3 题 | 选择题 | A | 函数与递归、递归函数、栈(stack) | 这题其实考的是内存管理的底层机制。拿到题先想:函数调用是怎么实现的?每次递归都会压栈,栈满了就崩了,所以直接锁定‘栈空间溢出’这个核心点。 |
| 第 4 题 | 选择题 | C | 排序基础、堆(Heap) | 这题考排序稳定性,拿到题先想:稳定性定义是相等元素相对顺序不变。再看算法过程,插入、冒泡、归并都是相邻操作或有序合并,只有堆排序建堆时父子远距离交换,直接锁定答案。 |
| 第 5 题 | 选择题 | C | 基础算法、其他算法 | 拿到题先别急着套公式,想想怎么让比较次数'复用'。核心心法是两两配对:把2n个数分成n对,每对内部比一次分出胜者(候选最大)和败者(候选最小),剩下的问题就简化成在n个胜者里找最大… |
| 第 6 题 | 选择题 | C | 数据管理、数据结构 | 这题就是模拟哈希表填充过程,核心在于先算平方取模定位,遇到冲突就顺着往后找空位,切记要按 0 到 7 的顺序一步步填,不能跳步漏算。 |
| 第 7 题 | 选择题 | C | 图形结构、图的基本概念 | 这题核心就是利用非连通图至少有两个连通分量,把边塞进一个完全图,剩下的点只要凑够分量数就行。 |
| 第 8 题 | 选择题 | B | 树形结构、二叉树基础 | 这题就是考完全二叉树的性质。要让高度最小,就得让树尽量‘满’。直接背公式:高度为h时,结点最少要2^(h 1)个,最多能装2^h 1个。把2021夹在中间,算个2的幂次就出来了。 |
| 第 9 题 | 选择题 | D | 二叉树基础、二叉树的遍历 | 这题考二叉树遍历特征。前序是根左右,中序是左根右,要想序列完全一样,必须让中序里那个‘左子树’部分消失,也就是所有非叶子结点都不能有左孩子,只能往右走。 |
| 第 10 题 | 选择题 | A | 排序基础、其他算法 | 这题本质是求逆序对。把目标顺序ABCDEF看作123456,原串DACFEB映射为4,1,3,6,5,2,直接数有多少对(i<j)满足a[i] a[j],总数就是最少交换次数。 |
| 第 11 题 | 选择题 | A | 递归函数、同余与模运算、快速幂 | 这题看着要算5的22次方,手算肯定崩,但递归展开后就是求5^22 mod 23。看到模数23是个质数,立马想到费马小定理,指数直接减到1,答案秒出。 |
| 第 12 题 | 选择题 | C | 递归函数、动态规划、简单动态规划 | 这题其实就考递归树和递推式两个视角,只要意识到每次调用都会分叉成两路,就能直接看出是指数级爆炸,别被‘斐波那契本身是 O(n)’的直觉带偏。 |
| 第 13 题 | 选择题 | C | 排列组合基础、计数原理 | 这道题考的是不相邻组合计数。拿到题先想:选k个不相邻苹果,相当于把k个苹果插进剩下的空位,公式是C(9 k, k)。因为题目要求至少选一个,所以k从1到4分别算再求和,别把不选的情… |
| 第 14 题 | 选择题 | C | 排列组合基础、计数原理、整数与整除 | 拿到题先别急着套公式,脑子里过一遍:a=b、b=c、a=c 三类情况,每类里用三角形不等式筛掉不合法的,最后用容斥把等边三角形重复算的部分扣回来。 |
| 第 15 题 | 选择题 | B | 图的基本概念、图论算法、最短路径 | 这题本质是手算 Dijkstra。别盯着 A 出发的边,先标出 A 到各点当前最短距离,每次把距离最小的那个点圈起来,再用它的出边去松弛邻居,直到圈到 J 为止。 |
| 第 16 题 | 阅读程序 | ABDC | 位运算、递归函数、基础算法 | 这题考程序阅读与几何计算。别急着按公式硬算,先通读代码理解它在求两个球重叠的体积,再代入特殊数据验证。 |
| 第 17 题 | 阅读程序 | ABC | 基础算法、分治算法、递归函数 | 这题考分治求最大子段和。拿到题先别急着套公式,顺着代码看递归怎么切分、怎么合并,特别是跨越中点那一段怎么算,把输入数组和递归过程在脑子里模拟一遍,就能抓住得分点。 |
| 第 18 题 | 阅读程序 | BAD | 进制与编码、字符串(string)、字符数组与字符串处理 | 这题核心是Base64编码解码机制。拿到题先盯住flag参数:0是编码(字符串→Base64),1是解码(Base64→字符串)。编码时每3字节变4字符,末尾补'=';解码要还原二… |
| 第 19 题 | 完善程序 | DAC | 栈(stack)、队列(queue)、基础算法、BFS(广度优先搜索) | 这题本质是求最少步数,用BFS逐层扩展。队列里存的是当前能达到的数值,每次挑F值最小且没访问过的数,做+4、 4、/4三种操作,只要结果在1到M之间就入队。 |
| 第 20 题 | 完善程序 | ADC | 数据结构、树形结构、二叉树基础、二叉树的遍历、LCA(最近公共祖先) | 这题考的是 Four Russians 算法把 RMQ 转成±1RMQ 的完整流程。拿到题先想:建树用单调栈维护右链,Euler 序的深度差恒为±1 才能状态压缩。从①的左子树弹出… |
建议按「限时做 → 对答案 → 读常见错误」三步走。先按考试的真实节奏做完,再回来看每一题的解析;尤其是"常见错误"那一段——它对应的是命题人反复设置的陷阱,读完能直接迁移到同类题上。
想做限时模考,可在 OI伴学 平台切换考试模式;错题会自动归集,并按考点推荐同类练习。