「贪心算法」在信息学竞赛真题中出现 55 次,覆盖 NOIP 普及组 初赛、CSP 入门级、CSP 提高级、GESP 五级、GESP 六级、GESP 八级、GESP 四级、GESP 七级。下面按考试级别列出每一道题的题号、答案与一句话解题思路,可以按考点横向刷,也可以顺着套卷纵向练。
怎么用这一页:先看下面的「命中题目速查」,挑 2~3 道做;做完对照每题的「常见错误」检查自己是不是踩了同一个坑;同一个考点连续错两次,就去知识点精讲把规则补齐再回来刷。
-
第 19 题
答案:B
· 判断题 · GESP 五级样题(C++ 组)
这题考贪心算法的本质,看到‘必然能实现全局最优’这种绝对化表述,立刻警觉——贪心只保证局部最优,全局最优需要满足特定条件或证明,直接举反例(如0 1背包)即可否定。
看完整解析 →
-
第 19 题
答案:A
· 判断题 · GESP 202312 C++ 五级
这题考的是贪心算法的核心定义。拿到题先别想复杂证明,直接回归课本定义:贪心就是每步选当前最优,且不回溯。题干前半句说它能达局部最优(定义成立),后半句说可能非全局最优(反例存在,如0 1背包),两者都对,所以选A。
看完整解析 →
-
第 19 题
答案:B
· 判断题 · GESP 202403 C++ 五级
贪心算法每一步做出当前最优选择,且不回溯。难点在于证明贪心策略的正确性(常用交换论证法)。
看完整解析 →
-
第 23 题
答案:B
· 判断题 · GESP 202403 C++ 五级
贪心算法每一步做出当前最优选择,且不回溯。难点在于证明贪心策略的正确性(常用交换论证法)。
看完整解析 →
-
第 2 题
答案:B
· 选择题 · GESP 202406 C++ 五级
仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。
看完整解析 →
-
第 11 题
答案:B
· 选择题 · GESP 202409 C++ 五级
仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。
看完整解析 →
-
第 19 题
答案:B
· 判断题 · GESP 202409 C++ 五级
贪心算法每一步做出当前最优选择,且不回溯。难点在于证明贪心策略的正确性(常用交换论证法)。
看完整解析 →
-
第 13 题
答案:A
· 选择题 · GESP 202412 C++ 五级
根据上下文和C++语法规则确定空缺处应填的内容,关注函数调用参数、表达式和返回值类型。
看完整解析 →
-
第 13 题
答案:A
· 选择题 · GESP 202503 C++ 五级
贪心算法每一步做出当前最优选择,且不回溯。难点在于证明贪心策略的正确性(常用交换论证法)。
看完整解析 →
-
第 19 题
答案:B
· 判断题 · GESP 202503 C++ 五级
贪心算法每一步做出当前最优选择,且不回溯。难点在于证明贪心策略的正确性(常用交换论证法)。
看完整解析 →
-
第 24 题
答案:B
· 判断题 · GESP 202503 C++ 五级
分治三步:分解(Divide)→ 解决(Conquer)→ 合并(Combine)。归并排序的关键在于合并两个有序子数组。
看完整解析 →
-
第 9 题
答案:C
· 选择题 · GESP 202506 C++ 五级
逐项分析每个选项,利用C++语法规则和算法知识判断正误。注意隐含条件(如整型溢出、栈溢出)。
看完整解析 →
-
第 13 题
答案:A
· 选择题 · GESP 202506 C++ 五级
仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。
看完整解析 →
-
第 13 题
答案:B
· 选择题 · GESP 202509 C++ 五级
STL 容器:vector(动态数组)、set/map(红黑树,有序)、unordered_set/map(哈希表,无序)。注意迭代器失效问题。
看完整解析 →
-
第 14 题
答案:A
· 选择题 · GESP 202512 C++ 五级
根据上下文和C++语法规则确定空缺处应填的内容,关注函数调用参数、表达式和返回值类型。
看完整解析 →
-
第 22 题
答案:A
· 判断题 · GESP 202512 C++ 五级
贪心算法每一步做出当前最优选择,且不回溯。难点在于证明贪心策略的正确性(常用交换论证法)。
看完整解析 →
-
第 25 题
答案:B
· 判断题 · GESP 202512 C++ 五级
贪心算法每一步做出当前最优选择,且不回溯。难点在于证明贪心策略的正确性(常用交换论证法)。
看完整解析 →
-
第 23 题
答案:B
· 判断题 · GESP 202603 C++ 五级
贪心算法每一步做出当前最优选择,且不回溯。难点在于证明贪心策略的正确性(常用交换论证法)。
看完整解析 →
-
第 13 题
答案:D
· 选择题 · GESP202609 C++ 五级
区间调度最大化活动数量,贪心核心是"尽早腾出空间"。看到题先想:要选尽可能多,就得让每次选择后剩余可用时间最多。关键观察:结束越早,留给后面的时间越充裕。因此必须按结束时间升序排序,然后线性扫描——当前活动若与上一个已选…
看完整解析 →
-
第 24 题
答案:B
· 判断题 · GESP202609 C++ 五级
这题一眼看出是贪心策略,但贪心不是万能钥匙。看到"任意硬币面值集合"这个表述,立刻警觉——命题人就是要考你贪心算法的适用边界。硬币找零问题有经典反例,比如面值{1,3,4}凑6元时贪心取4+1+1=3枚,最优解是3+3=…
看完整解析 →
-
第 20 题
答案:B
· 判断题 · GESP 202312 C++ 六级
这题是概念陷阱题。拿到题先别急着背'哈夫曼编码唯一',要立刻反应过来:算法步骤确实唯一,但压缩率是个比值,分子分母都得看具体数据。命题人就是卡在这个'唯一'和'确定'的偷换概念上。
看完整解析 →
-
第 1 题
答案:A
· 选择题 · GESP 202403 C++ 六级
DFS 使用栈(或递归),沿一条路径走到底再回溯,适合遍历所有可能状态。注意回溯时的状态恢复。
看完整解析 →
-
第 16 题
答案:A
· 判断题 · GESP 202406 C++ 六级
贪心算法每一步做出当前最优选择,且不回溯。难点在于证明贪心策略的正确性(常用交换论证法)。
看完整解析 →
-
第 25 题
答案:B
· 判断题 · GESP 202406 C++ 六级
贪心算法每一步做出当前最优选择,且不回溯。难点在于证明贪心策略的正确性(常用交换论证法)。
看完整解析 →
-
第 6 题
答案:b
· 选择题 · GESP 202409 C++ 六级
仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。
看完整解析 →
-
第 14 题
答案:B
· 选择题 · GESP 202412 C++ 六级
贪心算法每一步做出当前最优选择,且不回溯。难点在于证明贪心策略的正确性(常用交换论证法)。
看完整解析 →
-
第 17 题
答案:B
· 判断题 · GESP 202506 C++ 六级
哈夫曼编码:每次合并权值最小的两个节点,构建最优二叉树,使带权路径长度(WPL)最小。用于数据压缩。
看完整解析 →
-
第 9 题
答案:D
· 选择题 · GESP 202603 C++ 六级
哈夫曼编码:每次合并权值最小的两个节点,构建最优二叉树,使带权路径长度(WPL)最小。用于数据压缩。
看完整解析 →
-
第 9 题
答案:B
· 选择题 · GESP 202606 C++ 六级
哈夫曼编码:每次合并权值最小的两个节点,构建最优二叉树,使带权路径长度(WPL)最小。用于数据压缩。
看完整解析 →
-
第 11 题
答案:B
· 选择题 · GESP202609 C++ 六级
哈夫曼树构造遵循贪心策略:每次从当前节点集合中取出权值最小的两个合并为新节点,新节点权值为两者之和,再放回集合。WPL 等于所有内部节点权值之和,也等于各叶子权值×深度之和。本题只需按规则合并四次即可。
看完整解析 →
-
第 22 题
答案:A
· 判断题 · GESP202609 C++ 六级
哈夫曼编码的核心是构建一棵二叉树,每次合并两个频率最小的节点,频率高的字符自然落在树的浅层,频率低的字符落在树的深层。编码长度等于节点深度,因此高频字符的编码长度一定不超过低频字符。
看完整解析 →