CCC Junior 训练营: (J4、J5) 专项题型训练营 from 黄老师
CCC Junior J4、J5 专项题型训练营 from 黄老师
🎯 一、训练营目标
| 目标编号 | 学习目标 |
|---|---|
| 1 | 理解递归的基本思想与实现方式 |
| 2 | 掌握深度优先搜索(DFS)的基本流程与应用 |
| 3 | 学会设计递归边界条件和状态转移 |
| 4 | 理解递归与栈的关系,掌握避免栈溢出的技巧 |
| 5 | 能够解决简单的图遍历、树遍历及组合问题 |
| 6 | 掌握回溯算法的基本思想和状态恢复技巧 |
| 7 | 理解广度优先搜索(BFS)及其队列实现 |
| 8 | 掌握并查集数据结构及其优化策略 |
| 9 | 熟悉常用排序算法及定制排序技巧 |
| 10 | 理解贪心算法的设计思路和正确性证明 |
| 11 | 掌握动态规划的基础状态设计和转移方程 |
| 12 | 能够分析算法时间复杂度及空间复杂度 |
| 13 | 学会通过递归+记忆化减少重复计算 |
| 14 | 理解网格搜索与多叉树递归的应用场景 |
| 15 | 具备独立解决中等难度CCC题目和洛谷题目的能力 |
🧩 二、题型分类及典型代表
| 目标编号 | 题型类别 | 详细说明 | 典型题目示例(题号) | 涉及知识点 |
|---|---|---|---|---|
| 1 | 基础递归 | 简单递归函数设计,理解递归结构和终止条件 | CCC2014 J4 The Sums of Parts | 递归调用,终止条件 |
| 2 | 树的递归遍历 | 先序、中序、后序遍历、多叉树遍历 | 洛谷P3379 树的深度优先遍历 | 树结构递归,状态传递 |
| 3 | 图的DFS遍历 | 图的连通性、环检测、路径枚举 | CCC2017 J3 Special Cells | 标记访问,递归搜索 |
| 4 | 递归组合枚举 | 子集、排列、组合的递归枚举 | CCC2016 J4 Sorting | 递归分支,剪枝 |
| 5 | 递归+回溯 | 状态恢复、路径回溯、约束搜索 | CCC2019 J4 Cycle Quest | 回溯策略,撤销操作 |
| 6 | 网格递归 | 网格路径计数、边界处理、四方向遍历 | 洛谷P1753 迷宫路径 | 边界判断,网格状态管理 |
| 7 | 多叉树递归 | 多分支树结构递归问题 | 洛谷P2191 计算树直径 | 多分支递归,状态合并 |
| 8 | 递归数学问题 | 递归计算阶乘、斐波那契、递归数列等 | CCC Junior 简单递归题 | 递归关系,数学模型 |
| 9 | 递归+记忆化搜索 | 使用缓存避免重复递归计算 | CCC2018 J5 Optimization Problem | 状态缓存,递归优化 |
| 10 | 递归栈溢出分析 | 递归深度管理,尾递归优化 | - | 递归深度控制,系统栈 |
| 11 | BFS | 广度优先遍历,队列实现,最短路径搜索 | CCC2017 J5 Maze Solver | 队列,层序遍历,最短路径 |
| 12 | 并查集 | 集合合并,路径压缩,连通块统计 | CCC2018 J5 Connectivity | 并查集结构,合并优化 |
| 13 | 排序算法 | 标准排序,定制比较函数,稳定排序 | CCC J4/J5 多数题涉及排序 | STL排序,排序稳定性 |
| 14 | 贪心算法 | 局部最优策略设计与应用 | CCC2016 J5 Scheduling | 贪心选择,策略设计 |
| 15 | 动态规划 | 01背包,区间DP,路径计数等基础DP模型 | 洛谷P1048 采药、CCC2016 J5 Investment | 状态设计,转移方程,空间优化 |
| 16 | 数学与数论 | 基础数论,GCD,快速幂等算法 | - | 数学公式与算法 |
📚 三、训练营详细内容
1. 递归与DFS基础
- 理解递归的思想,掌握递归函数的设计和调用
- 学会设计合理的递归边界和状态转移
- 练习树结构和图结构的DFS遍历,掌握访问标记与剪枝
2. BFS及队列应用
- 理解广度优先搜索的实现和应用场景
- 掌握队列数据结构操作及层序遍历技巧
- 解决最短路径、障碍物网格问题
3. 并查集与连通性
- 学习并查集数据结构及路径压缩、按秩合并优化
- 实现连通分量统计,处理合并操作
4. 排序与贪心算法
- 熟悉多种排序算法,掌握自定义排序规则
- 理解贪心策略设计及局部最优解如何实现全局最优
5. 动态规划基础
- 掌握DP状态设计与转移方程
- 熟悉一维、二维背包及区间DP基本题型
- 理解递归+记忆化技术的使用
🧪 四、典型训练题目推荐(附平台)
| 目标编号 | 题目名称 | 类型 | 平台 | 说明 |
|---|---|---|---|---|
| 1 | CCC2014 J4 The Sums of Parts | 基础递归 | CEMC | 递归数组求和 |
| 2 | CCC2017 J3 Special Cells | 图的DFS | CEMC | 标记特殊节点 |
| 3 | CCC2016 J4 Sorting | 递归组合枚举 | CEMC | 枚举排序方案 |
| 4 | CCC2019 J4 Cycle Quest | 递归回溯 | CEMC | 路径回溯 |
| 5 | 洛谷P1753 迷宫路径 | 网格DFS | 洛谷 | 网格递归路径搜索 |
| 6 | 洛谷P2191 计算树直径 | 多叉树递归 | 洛谷 | 多分支递归处理 |
| 7 | 洛谷P3379 树的深度优先遍历 | 树递归 | 洛谷 | 基础树遍历 |
| 8 | 洛谷P1971 子集和 | 递归组合 | 洛谷 | 子集枚举及和的判断 |
| 9 | 洛谷P1048 采药 | 递归+背包 | 洛谷 | 背包模型与递归结合 |
| 10 | CCC2017 J5 Maze Solver | BFS | CEMC | 最短路径搜索 |
| 11 | CCC2018 J5 Connectivity | 并查集 | CEMC | 连通块统计 |
| 12 | CCC2016 J5 Scheduling | 贪心算法 | CEMC | 调度问题 |
| 13 | 洛谷P1880 石子合并 | 区间DP | 洛谷 | 区间状态转移 |
| 14 | 洛谷P1043 旅行计划 | 动态规划 | 洛谷 | 多阶段决策问题 |
| 15 | 洛谷P1429 多米诺骨牌 | 状态压缩DP | 洛谷 | 状态压缩技术 |
⏱️ 五、训练任务安排
| 任务编号 | 训练内容 | 训练目标 |
|---|---|---|
| T1 | 递归基本概念与简单递归函数实现 | 理解递归函数结构,设计终止条件 |
| T2 | 递归计算阶乘和斐波那契数列 | 掌握递归调用与返回 |
| T3 | 树的先序、中序、后序遍历递归 | 熟悉树的递归遍历 |
| T4 | 图的DFS基础实现与访问标记 | 掌握图遍历及避免重复访问 |
| T5 | 递归组合枚举子集和排列 | 理解递归分支与剪枝 |
| T6 | 回溯算法基础及状态恢复 | 学会路径撤销与回溯技术 |
| T7 | 网格递归遍历及边界处理 | 练习网格状态管理和边界判断 |
| T8 | 多叉树递归问题练习 | 多分支递归的状态处理 |
| T9 | 递归+记忆化搜索基础 | 避免重复计算,提高递归效率 |
| T10 | BFS实现及最短路径问题 | 理解队列操作及层序遍历 |
| T11 | 并查集基本实现及优化 | 学会路径压缩及合并操作 |
| T12 | 贪心算法设计与排序技巧 | 理解贪心策略和定制排序 |
| T13 | 动态规划基础状态设计与转移 | 掌握DP思想和代码实现 |
| T14 | 递归深度分析及尾递归优化 | 防止栈溢出,提升递归性能 |
| T15 | 综合练习与历年CCC J4/J5实战题目训练 | 巩固各类技巧,提升综合解题能力 |

浙公网安备 33010602011771号