洛谷的“深基”并不是从第 1 章到第 18 章每章都有一组连续编号的题目。例如当前洛谷可以明确检索到 深基1~7、深基9、深基12、深基13、深基15~18 等标识;不能检索到的章节我不虚构题目。洛谷自己的题单也明确说明这些题目来自《深入浅出程序设计竞赛——基础篇》。(Luogu)
洛谷“深基”题目全集整理表
难度说明:
- 入门:适合零基础/基础训练
- 普及−:开始进入竞赛基础,需要综合运用知识
- 普及/提高−:明显高于纯入门题,需要一定算法思维
- 普及+/提高:已经属于比较正规的算法训练题
一、深基1:基础输入输出、简单计算
洛谷当前可以检索到深基1的例题和习题,包括 B2600~B2615 这一组题。(Luogu)
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 1 | 深基1.例2 | B2600 | 简单的分苹果 | Simple Apple Distribution | 入门 | 输出、整数运算 | B2600 |
| 2 | 深基1.例3 | B2601 | 简单的分苹果 2 | Simple Apple Distribution 2 | 入门 | 整数运算 | B2601 |
| 3 | 深基1.例9 | B2606 | 圆的计算 | Circle Calculations | 入门 | 常量、浮点数、数学公式 | B2606 |
| 4 | 深基1.例10 | B2607 | 简单的猴子吃桃 | Simple Monkey and Peaches | 入门 | 逆向计算 | B2607 |
| 5 | 深基1.例11 | B2608 | 评测机队列 | Judge Queue | 入门 | 基础计算 | B2608 |
| 6 | 深基1.习1 | B2609 | 清扫教室 | Cleaning the Classroom | 入门 | 基础输出 | B2609 |
| 7 | 深基1.习2 | B2610 | 面积计算 | Area Calculation | 入门 | 方程、面积 | B2610 |
| 8 | 深基1.习3 | B2611 | 竞赛得分 | Contest Scores | 入门 | 方程、浮点数 | B2611 |
| 9 | 深基1.习4 | B2612 | 简单的分苹果 3 | Simple Apple Distribution 3 | 入门 | 整数运算 | B2612 |
| 10 | 深基1.习5 | B2613 | 打字速度 | Typing Speed | 入门 | 基础计算 | B2613 |
| 11 | 深基1.习6 | B2614 | 鸡兔共笼 | Chickens and Rabbits in One Cage | 入门 | 方程、枚举 | B2614 |
| 12 | 深基1.习7 | B2615 | 定期存款 | Fixed-Term Deposit | 入门 | 数学计算 | B2615 |
二、深基2:顺序结构
深基2主要训练顺序结构、整数/浮点运算、类型转换、数学公式。洛谷官方题单列出了深基2.例5~例8、例12以及习题2、习题6。(Luogu)
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 13 | 深基2.例1 | B2616 | 跑步 | Running | 入门 | 基本计算 | B2616 |
| 14 | 深基2.例2 | B2617 | 英文字母 | English Letters | 入门 | 字符、ASCII | B2617 |
| 15 | 深基2.例3 | B2618 | 玩橡皮泥 | Playing with Plasticine | 入门 | 基础数学 | B2618 |
| 16 | 深基2.例4 | B2619 | 销量预测 | Sales Forecast | 入门 | 数学计算 | B2619 |
| 17 | 深基2.例5 | P5703 | 苹果采购 | Apple Purchasing | 入门 | 整数运算 | P5703 |
| 18 | 深基2.例6 | P5704 | 字母转换 | Letter Conversion | 入门 | ASCII、字符转换 | P5704 |
| 19 | 深基2.例7 | P5705 | 数字反转 | Number Reversal | 入门 | 数字分离、取模 | P5705 |
| 20 | 深基2.例8 | P5706 | 再分肥宅水 | Redistributing Fat House Water | 入门 | 浮点数、格式化输出 | P5706 |
| 21 | 深基2.例12 | P5707 | 上学迟到 | Late for School | 入门 | 时间计算、取模、向上取整 | P5707 |
| 22 | 深基2.习2 | P5708 | 三角形面积 | Triangle Area | 入门 | 海伦公式/数学公式 | P5708 |
| 23 | 深基2.习6 | P5709 | Apples Prologue / 苹果和虫子 | Apples Prologue / Apples and Worms | 入门 | 整数除法、边界处理 | P5709 |
三、深基3:分支结构
深基3主要进入 if / else、逻辑运算、条件判断、排序基础。洛谷的“入门2——分支结构”题单也将 P5710~P5717 等题目作为分支结构训练。(Luogu)
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 24 | 深基3.例1 | B2620 | 数字比较 | Number Comparison | 入门 | 比较运算符、逻辑判断 | B2620 |
| 25 | 深基3.例2 | P5710 | 数的性质 | Properties of Numbers | 入门 | 逻辑运算、分支 | P5710 |
| 26 | 深基3.例3 | P5711 | 闰年判断 | Leap Year Check | 入门 | 多条件判断 | P5711 |
| 27 | 深基3.例4 | P5712 | Apples | Apples | 入门 | 条件判断 | P5712 |
| 28 | 深基3.例5 | P5713 | 洛谷团队系统 | Luogu Team System | 入门 | if/else | P5713 |
| 29 | 深基3.例7 | P5714 | 肥胖问题 | BMI / Obesity Problem | 入门 | 浮点数、条件分支 | P5714 |
| 30 | 深基3.例8 | P5715 | 三位数排序 | Sorting Three Numbers | 入门 | 排序、交换 | P5715 |
| 31 | 深基3.例9 | P5716 | 月份天数 | Days in a Month | 入门 | 分支、闰年 | P5716 |
| 32 | 深基3.习8 | P5717 | 三角形分类 | Triangle Classification | 普及− | 排序、三角形判定、逻辑 | P5717 |
P5717 的官方题面要求判断三角形、直角/锐角/钝角、等腰、等边等多个性质,是深基3中非常适合练习多重条件判断的一题。(Luogu)
四、深基4:循环结构
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 33 | 深基4.例2 | P5718 | 找最小值 | Find the Minimum | 入门 | 循环、最值 | P5718 |
| 34 | 深基4.例3 | P5719 | 分类平均 | Grouped Average | 入门 | 循环、平均数 | P5719 |
| 35 | 深基4.例4 | P5720 | 一尺之棰 | A One-Foot Rod | 入门 | while、循环模拟 | P5720 |
| 36 | 深基4.例6 | P5721 | 数字直角三角形 | Numeric Right Triangle | 入门 | 嵌套循环、图形输出 | P5721 |
| 37 | 深基4.例11 | P5722 | 数列求和 | Sequence Summation | 入门 | for循环、累加 | P5722 |
| 38 | 深基4.例13 | P5723 | 质数口袋 | Prime Number Pocket | 入门 | 枚举、素数判断 | P5723 |
| 39 | 深基4.习5 | P5724 | 求极差 / 最大跨度值 | Range / Maximum Span | 入门 | 数组、最值 | P5724 |
| 40 | 深基4.习8 | P5725 | 求三角形 | Draw a Triangle | 入门 | 嵌套循环、格式化输出 | P5725 |
| 41 | 深基4.习9 | P5726 | 打分 | Scoring | 入门 | 循环、最大最小值、平均值 | P5726 |
P5720 的核心就是循环模拟:每天将木棍长度除以 2,直到长度变成 1。(Luogu)
五、深基5:数组与基础模拟
深基5开始明显进入数组、二维数组、模拟、图形输出。洛谷的数组题单也将 P5727、P5728、P5729、P5730、P5731、P5732 作为这一阶段的核心练习。(Luogu)
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 42 | 深基5.例3 | P5727 | 冰雹猜想 | Collatz Conjecture | 入门 | while、模拟 | P5727 |
| 43 | 深基5.例5 | P5728 | 旗鼓相当的对手 | Closely Matched Opponents | 入门 | 数组、枚举 | P5728 |
| 44 | 深基5.例7 | P5729 | 工艺品制作 | Craft Making | 入门 | 二维数组、模拟 | P5729 |
| 45 | 深基5.例10 | P5730 | 显示屏 | Digital Display | 普及− | 二维数组、字符图形 | P5730 |
| 46 | 深基5.习6 | P5731 | 蛇形方阵 | Snake Matrix | 入门 | 二维数组、模拟 | P5731 |
| 47 | 深基5.习7 | P5732 | 杨辉三角 | Pascal's Triangle | 入门 | 二维数组、组合规律 | P5732 |
其中 P5730 的官方难度已经达到 普及−,相较前面的纯计算题有明显提升。(Luogu)
六、深基6:字符串
深基6正式进入字符串处理。
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 48 | 深基6.例1 | P5733 | 自动修正 | Auto Correction | 入门 | string、字符替换 | P5733 |
| 49 | 深基6.例6 | P5734 | 文字处理软件 | Word Processing Software | 入门 | string、字符串操作 | P5734 |
洛谷当前题库也明确把 P5733 标记为“深基6.例1”,P5734 标记为“深基6.例6”。(Luogu)
七、深基7:函数、递归、结构体
这是非常重要的一章。深基7开始出现:
- function
- 参数
- return
- recursion
- struct
- prime checking
- 排序/统计
- 结构体综合应用
洛谷的相关题单也将 P5735、P5738、P5739、P5740、P5744 等作为函数/结构体/递归训练题。(Luogu)
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 50 | 深基7.例1 | P5735 | 距离函数 | Distance Function | 入门 | 函数、数学公式 | P5735 |
| 51 | 深基7.例2 | P5736 | 质数筛 | Prime Filtering | 入门 | 函数、素数判断 | P5736 |
| 52 | 深基7.例3 | P5737 | 闰年展示 | Leap Year Display | 入门 | 函数、循环、日期 | P5737 |
| 53 | 深基7.例4 | P5738 | 歌唱比赛 | Singing Competition | 普及− | 函数、数组、排序/统计 | P5738 |
| 54 | 深基7.例7 | P5739 | 计算阶乘 | Factorial Calculation | 入门 | 函数、递归/循环 | P5739 |
| 55 | 深基7.例9 | P5740 | 最厉害的学生 | Top Student | 入门 | struct、数组、最大值 | P5740 |
| 56 | 深基7.例10 | P5741 | 旗鼓相当的对手 - 加强版 | Closely Matched Opponents - Enhanced | 普及− | struct、枚举、字符串 | P5741 |
| 57 | 深基7.例11 | P5742 | 评等级 | Grade Evaluation | 入门 | struct、成员函数 | P5742 |
| 58 | 深基7.习8 | P5743 | 猴子吃桃 | Monkey and Peaches | 入门 | 递推、递归 | P5743 |
| 59 | 深基7.习9 | P5744 | 培训 | Training | 入门 | struct、函数 | P5744 |
例如 P5744 要求使用结构体保存姓名、年龄、成绩,并设计函数模拟一年后的培训过程,非常适合用来练习 struct + function。(Luogu)
八、深基9:排序、分治基础
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 60 | 深基9.例1 | P1271 | 选举学生会 | Student Union Election | 普及− | 排序、计数排序 | P1271 |
| 61 | 深基9.例4 | P1923 | 求第 k 小的数 | Find the k-th Smallest Number | 普及− | 快速选择/分治 | P1923 |
洛谷自己的“算法1-2 排序”题单把 P1271 和 P1923 都作为深基9核心排序题,其中 P1923 是第 k 小问题。(Luogu)
九、深基12:贪心
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 62 | 深基12.例1 | P2240 | 部分背包问题 | Fractional Knapsack | 普及− | 贪心、排序、性价比 | P2240 |
P2240 的题目明确允许金币任意分割,因此核心就是按照单位重量价值进行贪心选择。洛谷当前难度为“普及−”。(Luogu)
十、深基13:二分查找
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 63 | 深基13.例1 | P2249 | 查找 | Searching | 普及− | 二分查找、lower_bound思想 | P2249 |
P2249 要求在一个单调不减序列中找到某个数字第一次出现的位置,是非常标准的二分查找入门题。(Luogu)
十一、深基15:数组、链表、STL
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 64 | 深基15.例1 | P3156 | 询问学号 | Query Student ID | 入门 | 数组、随机访问 | P3156 |
| 65 | 深基15.例2 | T191062 | 寄包柜 | Storage Lockers | 普及− | 二维数据、数组套链表/映射 | T191062 |
| 66 | 深基15.习9 | P4387 | 验证栈序列 | Validate Stack Sequences | 普及/提高− | stack、栈模拟 | P4387 |
P3156 的数据规模达到 (n\le2\times10^6)、询问次数达到 (10^5),核心是利用数组的直接访问。(Luogu)
P4387 则进入真正的 STL/数据结构训练:给定入栈和出栈序列,判断出栈序列是否可能出现。(Luogu)
十二、深基16:二叉树
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 67 | 深基16.例1 | P4715 | 淘汰赛 | Knockout Tournament | 普及− | 二叉树、递归 | P4715 |
| 68 | 深基16.例3 | P4913 | 二叉树深度 | Binary Tree Depth | 普及− | DFS、递归、二叉树 | P4913 |
| 69 | 深基16.例7 | P5076 | 普通二叉树(简化版) | Ordinary Binary Tree (Simplified) | 普及+/提高 | 二叉树、递归、数据结构 | P5076 |
洛谷的“二叉树”题单明确将 P4715、P4913、P5076 列为深基16的核心题目。(Luogu)
十三、深基17:集合、map、STL
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 70 | 深基17.例5 | P5250 | 木材仓库 | Lumber Warehouse | 普及− | set、二分 | P5250 |
| 71 | 深基17.例6 | P5266 | 学籍管理 | Student Record Management | 普及/提高− | map、字符串、STL | P5266 |
洛谷的集合题单明确将 P5250、P5266 作为 set/map 的深基17练习。(Luogu)
十四、深基18:图论、DFS、BFS
| # | 深基 | 题号 | 中文题目 | English | 难度 | 主要知识点 | 链接 |
|---|---|---|---|---|---|---|---|
| 72 | 深基18.例3 | P5318 | 查找文献 | Literature Search | 普及− | DFS、BFS、图遍历 | P5318 |
P5318 要求分别使用 DFS 和 BFS 遍历图,而且要求多个可访问节点时优先访问编号较小的节点,是深基阶段进入图论非常典型的一题。(Luogu)
十五、按“知识体系”重新归类
如果不是按照“深基章节”,而是从Python/C++竞赛学习路线来看,这 72 道题可以进一步压缩成下面这条路线:
| 学习阶段 | 深基题目 | 核心英文知识点 | 建议掌握程度 |
|---|---|---|---|
| ① 基础语法 | 深基1 | Input / Output / Arithmetic | ⭐ |
| ② 顺序结构 | 深基2 | Sequential Structure | ⭐ |
| ③ 条件判断 | 深基3 | Conditional Statements / Branching | ⭐ |
| ④ 循环 | 深基4 | Loops / Iteration | ⭐⭐ |
| ⑤ 数组模拟 | 深基5 | Arrays / Simulation | ⭐⭐ |
| ⑥ 字符串 | 深基6 | Strings / String Processing | ⭐⭐ |
| ⑦ 函数 | 深基7 | Functions | ⭐⭐ |
| ⑧ 递归 | 深基7 | Recursion | ⭐⭐⭐ |
| ⑨ 结构体 | 深基7 | Structures / Struct | ⭐⭐⭐ |
| ⑩ 排序 | 深基9 | Sorting | ⭐⭐⭐ |
| ⑪ 贪心 | 深基12 | Greedy Algorithm | ⭐⭐⭐ |
| ⑫ 二分 | 深基13 | Binary Search | ⭐⭐⭐ |
| ⑬ 数组/链表 | 深基15 | Arrays / Linked Lists | ⭐⭐⭐ |
| ⑭ 栈 | 深基15 | Stack | ⭐⭐⭐ |
| ⑮ 二叉树 | 深基16 | Binary Trees | ⭐⭐⭐⭐ |
| ⑯ set/map | 深基17 | Set / Map / Hashing | ⭐⭐⭐⭐ |
| ⑰ DFS/BFS | 深基18 | Graph Traversal / DFS / BFS | ⭐⭐⭐⭐ |
十六、如果是给学生学 Python,建议这样对应
特别是你如果是用Python给中小学生/信息学入门学生教学,不建议完全按照 C++ 的“深基章节”机械讲,而可以这样转换:
| 深基 | Python对应内容 | 重点语法 |
|---|---|---|
| 深基1 | Python 基础输出 | print() |
| 深基2 | 顺序结构 | input()、变量、运算符 |
| 深基3 | 分支 | if / elif / else |
| 深基4 | 循环 | for / while |
| 深基5 | 列表 | list、二维列表 |
| 深基6 | 字符串 | str、切片、方法 |
| 深基7 | 函数 | def、参数、return |
| 深基7 | 递归 | recursive function |
| 深基7 | 结构体 | Python 中可以用 class / dict |
| 深基9 | 排序 | sort()、sorted() |
| 深基12 | 贪心 | greedy strategy |
| 深基13 | 二分 | bisect / binary search |
| 深基15 | 栈/队列 | list、deque |
| 深基16 | 二叉树 | class + recursion |
| 深基17 | 映射 | dict、set |
| 深基18 | 图搜索 | DFS / BFS |
一个特别值得注意的对应关系
你刚才问到的 Python“推导式”,英文是 comprehension。
在深基体系中,它不是单独的一章,但在 Python 教学中可以把它放到“数组/列表”之后:
# 普通循环
squares = []
for x in range(1, 6):squares.append(x * x)# List Comprehension
squares = [x * x for x in range(1, 6)]
也就是说:
深基5 数组 → Python list → List Comprehension
这是非常自然的一条教学衔接路线。
一个重要结论
如果你的目标是从 Python 入门一直过渡到 GESP/CSP-J/USACO 基础算法,我建议不要把这 72 道题全部当成同等重要。
可以分成:
第一梯队:必须刷
深基1 → 深基2 → 深基3 → 深基4 → 深基5 → 深基6 → 深基7
重点是把:
变量 → 运算 → if → for/while → list → string → function → recursion
完整打通。
第二梯队:算法入门
深基9 → 深基12 → 深基13
重点:
Sorting → Greedy → Binary Search
第三梯队:数据结构入门
深基15 → 深基16 → 深基17 → 深基18
重点:
Stack → Tree → Set/Map → DFS/BFS
这也是为什么洛谷官方的算法题单会把深基13的 P2249 放在二分查找题单中、把深基12的 P2240 放在贪心题单中、把深基18的 P5318 放在图遍历题单中。(Luogu)
因此,如果是给一个 Python 初学者制定刷题路线,推荐顺序不是单纯的 P 题号顺序,而是:
深基1 → 深基2 → 深基3 → 深基4 → 深基5 → 深基6 → 深基7 → 深基9 → 深基12 → 深基13 → 深基15 → 深基16 → 深基17 → 深基18
这条路线基本就是从Python 基础语法 → 基础编程 → 算法入门 → 数据结构 → 搜索的一条完整上升路线。