| 题号 | 题型 | 答案 | 考点 | 解题思路 |
|---|---|---|---|---|
| 第 1 题 | 选择题 | A | 对数函数、函数、数学 | 看到输入10输出1,先别急着套公式,想哪个函数能把10变1?log10(10)=1,其他选项要么数值对不上,要么完全不是这个量级,直接排除法最快。 |
| 第 2 题 | 选择题 | B | 一维数组、函数与递归、记忆化搜索 | 斐波那契数列:f(1)=f(2)=1,f(n)=f(n 1)+f(n 2)。递归实现简单但效率低(O(2^n)),循环实现O(n)。 |
| 第 3 题 | 选择题 | C | 函数 | 这题考函数声明与定义的关系,以及调用时实参的要求。拿到题先别急着背规则,把每个选项里的绝对词(必须、只能)圈出来,结合 C++ 同文件内定义即可调用的事实,快速排除 A、D;再看 … |
| 第 4 题 | 选择题 | D | — | 拿到题先圈关键词:'4个结点''简单''有向'。核心思路就是把每个结点当成起点,看它能连向几个别的点,再乘以结点数,公式直接套 n(n 1) 就行。 |
| 第 5 题 | 选择题 | B | 哈希表、算法、数据结构 | 这题考哈希表的原生操作边界。拿到题先想:哈希表靠散列函数映射到桶,桶内无序,所以增删查是 O(1) 的,而排序得遍历所有桶并重新排,属于额外操作,直接排除 B。 |
| 第 6 题 | 选择题 | D | 函数、哈希表 | 这题其实是个送分陷阱,别被'哈希表'吓住先想冲突探测。核心就两步:算出800的哈希地址是8,然后回头扫一眼表里已有的键,发现8这个位置是空的,直接填进去就行,完全不需要线性探测。 |
| 第 7 题 | 选择题 | B | 函数、数学 | 这题本质是用三角函数推导等边三角形面积。别死记√3/4,直接从等边三角形的高入手:高h = x·sin(π/3),面积就是底×高÷2,即x²·sin(π/3)/2。 |
| 第 8 题 | 选择题 | A | 动态规划 | 拿到题先别急着背定义,脑子里过一遍DP和分治、贪心的区别:分治是把大问题拆成互不干扰的小块,DP拆出来的小块是互相‘打架’的,这就是重叠子问题。 |
| 第 9 题 | 选择题 | C | 图的遍历、搜索 | 看到visited数组,先别急着选A,要问自己:遍历是谁干的?visited是谁干的?DFS里visited是防止回头路,BFS里visited是防止重复入队,最短路径得记前驱,遍… |
| 第 10 题 | 选择题 | C | 动态规划、递推 | 这道题考的是二维 DP 循环顺序与依赖方向。拿到题先画依赖图:dp[i][j] 需要 dp[i 1][j] 和 dp[i][j 1],所以必须保证计算当前格子时,这两个值已经算好。 |
| 第 11 题 | 选择题 | D | — | 这题考完全二叉树节点数计算。拿到题先想:深度为4意味着前3层必须满,第4层至少1个。直接套公式2^(h 1)+1,7+1=8。 |
| 第 12 题 | 选择题 | C | 搜索 | 这题考广度优先搜索(BFS)的队列顺序。拿到图先别急着看编号,要盯着起点1的邻居是谁、谁先出现。记住BFS核心:队列里谁先进谁就先出,同层节点顺序完全由邻接表顺序决定。 |
| 第 13 题 | 选择题 | D | — | 看到'有向图'和'完全图'先反应出公式 n(n 1)。算出总数 380,减去已有的 300 条,答案自然出来。 |
| 第 14 题 | 选择题 | B | 强连通分量(SCC)、算法 | 这题考强连通分量计数。拿到图先别急着套算法,直接按定义找:任意两点能否互相到达。把图拆成互不干扰的块,每个块里任取两点都能双向走,块与块之间走不通,数数有几块就是答案。 |
| 第 15 题 | 选择题 | B | 格雷码 | 这道题考的是格雷码的核心特性——相邻性,命题人用‘唯一性’这种看似正确实则通用的描述设坑。解题时先排除A、C、D这些符合格雷码定义的选项,再聚焦B选项,理解‘唯一性’并非格雷码专属… |
| 第 16 题 | 判断题 | B | 数学 | 这道题考的是指数函数的值域性质。拿到题别急着看负号,先反应过来 exp 是自然指数函数,它的定义域是全体实数,但值域恒为正数,所以无论指数是正还是负,结果都跑不出正数区间。 |
| 第 17 题 | 判断题 | B | — | 别被'log'吓住,先翻译'一个数量级'成数学式子,再代入对数定义算底数,最后对比题干结论。 |
| 第 18 题 | 判断题 | A | 函数 | 这题考的是三角函数库函数与浮点比较的合法性。拿到题先想:sin和cos是cmath标准库函数,参数是弧度,返回值是double,两个double用 比较完全合法,锐角范围内不会溢出… |
| 第 19 题 | 判断题 | A | 函数 | 这题考 pow 函数的返回类型,别被参数全是整数误导,直接看 pow 的函数签名,返回值是 double 类型,所以 pow(1,2) 返回浮点数,选 A。 |
| 第 20 题 | 判断题 | B | 哈希表、数据结构 | 这题考哈希冲突的必然性。拿到题先别想'表大就能解决',要抓住'哈希函数确定'和'键空间无限'这两个条件,用鸽巢原理想:输出有限、输入无限,冲突就躲不掉。 |
| 第 21 题 | 判断题 | A | 动态规划、STL算法基础 | 这道题考动态规划的核心定义。拿到判断题别急着翻书背定义,直接想:动态规划的本质是什么?是‘分而治之’把大问题拆成小问题,然后怎么把这些小问题的解拼起来?答案就是状态转移方程,它是D… |
| 第 22 题 | 判断题 | B | 算法 | 这题是个典型的“语义陷阱”题。拿到题先别急着想代码,先咬文嚼字:题目说的是“结果一样”还是“访问的节点集合一样”?深搜和广搜的本质差异在于遍历顺序,顺序不同,结果自然不同。 |
| 第 23 题 | 判断题 | A | — | 这题考图遍历。连通图定义是任意两点可达,深搜(DFS)天然能遍历整张图,从任意点出发跑一遍,若访问节点数等于总节点数,即证连通。 |
| 第 24 题 | 判断题 | B | 数据结构、复杂度分析、二分查找 | 这题考链表特性与二分查找前提的冲突,拿到题先想:二分法需要随机访问 O(1) 取中点,链表只能顺序访问,所以直接判错。 |
| 第 25 题 | 判断题 | B | 指针与引用 | 拿到这种绝对化表述的判断题,别急着在链表实现细节里打转,先盯着‘只能’这两个字。命题人就是要考你对语言语义的理解——C++里除了指针,引用和数组指针也是地址相关类型,它们都能实现链… |
建议按「限时做 → 对答案 → 读常见错误」三步走。先按考试的真实节奏做完,再回来看每一题的解析;尤其是"常见错误"那一段——它对应的是命题人反复设置的陷阱,读完能直接迁移到同类题上。
想做限时模考,可在 OI伴学 平台切换考试模式;错题会自动归集,并按考点推荐同类练习。