从零基础到算法竞赛 —— 按顺序学,不跳步。


序号 专题 核心内容 链接
01 码力训练 键盘指法 · 盲打练习 · 编程环境搭建 → 阅读
02 顺序结构 变量与常量 · 输入输出 · 表达式运算 → 阅读
03 选择结构 if-else 分支 · switch · 条件判断逻辑 → 阅读
04 循环结构 for / while / do-while · 循环嵌套 · 穷举 → 阅读
05 数组 一维数组 · 二维数组 · 字符数组与字符串 → 阅读
06 函数 函数定义与调用 · 参数传递 · 作用域 → 阅读
07 排序 冒泡 · 选择 · 插入 · 桶排 · sort() → 阅读
08 递归 递归思想 · 边界条件 · 斐波那契与汉诺塔 → 阅读
09 分治 分而治之 · 归并排序 · 快速幂 → 阅读
10 搜索 DFS 深度优先 · BFS 宽度优先 · 回溯剪枝 → 阅读
11 递推 数列递推 · 二维路径 · 状态递推 · 写表填表 → 阅读
12 贪心 局部最优 · 区间调度 · 排序贪心策略 → 阅读
13 动规 背包九讲 · 线性DP · 区间DP · 记忆化搜索 → 阅读

🗺️ 学习路线

三阶段、十三个台阶,一步步登上信竞领奖台。


🖥️ 第一阶段:语言基础(01 — 06)

学会「写代码」—— 从打开编辑器到写出百行程序

# 专题 你将学会 难度
01 码力训练 键盘盲打 · 编程环境搭建 · 第一个 Hello World
02 顺序结构 变量定义 · cin/cout 输入输出 · 算术表达式
03 选择结构 if-else · switch · 关系与逻辑运算符
04 循环结构 for / while / do-while · 循环嵌套 · 穷举思想 ⭐⭐
05 数组 一维数组 · 二维数组 · char[]string
06 函数 定义与调用 · 形参与实参 · 变量作用域 · 模块化思维

🎯 阶段里程碑:独立完成百行以内的程序,输入输出、分支循环、数组函数自由组合。


🧠 第二阶段:基础算法(07 — 09)

学会「怎么算」—— 掌握三种最核心的算法思维方式

# 专题 你将学会 难度 前置
07 排序 冒泡 · 选择 · 插入 · 桶排序 · sort() 的使用 ⭐⭐ 04 05
08 递归 递归三要素 · 斐波那契 · 汉诺塔 · 执行过程可视化 ⭐⭐⭐ 06
09 分治 分而治之 · 归并排序 · 快速幂 · 二分查找 07 08

🎯 阶段里程碑:理解时间复杂度,能手写快排/归并,递归调用不出错。


🏆 第三阶段:竞赛算法(10 — 13)

学会「拿分」—— NOIP 普及组 / 提高组核心考点全覆盖

# 专题 你将学会 难度 前置
10 搜索 DFS 深度优先 · BFS 宽度优先 · 回溯与剪枝 · 八皇后 ⭐⭐⭐ 08
11 递推 斐波那契 / Pell 数列 · 二维路径 · 昆虫繁殖 · 位数问题 04 05
12 贪心 区间调度 · 排队接水 · 删数问题 · 活动选择 07
13 动规 01背包 / 完全背包 · LIS / LCS · 区间DP · 记忆化搜索 ⭐⭐⭐⭐ 08 11

🎯 阶段里程碑:能独立阅读 CSP-J2 原题 → 分析出算法 → 写出 AC 代码。


阶段 学时参考 做题量 检验标准
🖥️ 语言基础 2~4 周 50+ 题 顺序/选择/循环/数组/函数自由组合使用
🧠 基础算法 2~3 周 30+ 题 能手写快排、归并,递归不出错
🏆 竞赛算法 4~8 周 100+ 题 洛谷普及组题目独立 AC

💡 三个"不"原则

① 不跳阶段 —— 语言基础不牢,直接学算法会崩溃;

② 不只看不写 —— 每学一个专题至少做 5 道题;

③ 不死记代码 —— 理解「为什么这么想」比「代码怎么写」重要十倍。


🎯 信竞的三种核心能力

能力 是什么 怎么练
码力 想到就能写出来,写出来就能过编译,过编译就能跑对 每学一个知识点至少刷 5 道题,量变引起质变
思维 看到题目能分析出:考什么算法?为什么用这个?边界在哪? 做题时先想清楚再写代码,做完一题复盘一题
心理 赛场上脑子不空、手不抖,卡题不慌、能果断切换 定期参加模拟赛,限时训练,把紧张感练成习惯

💡 三者缺一不可。空有思维没码力,想到了写不出来;有码力没思维,只能做水题;前两者都有但心态崩了,赛场上照样拿不到分。


⛰️ 学习信竞的两大关(极其抽象)

第一关:递归(08)

递归难在「思维反转」—— 人习惯从前往后推,递归却要你相信一个还没写完的函数能给你正确答案。过了这关,你就真正拥有了「计算思维」,不再是一个只会堆代码的码农。分治、搜索、树形结构全都建立在递归之上。

🚪 过了递归,算法的大门才算真正打开。

第二关:动规(13)

动规难在「从无到有设计状态」—— 递推式不会自动跳出来,你得自己定义 dp 数组的含义、自己找转移方程。它没有固定模板,每道题都是一次创造。过了这关,你就从「学算法的人」变成了「能用算法解决问题的人」。

🏆 过了动规,CSP-J2一等奖向你招手。

码力训练 → ... → 递归(第一关)→ ... → 动规(第二关)→ 拿奖
         01-06           08                   13

视频教程

  1. [CCF官方教程]

    网址:https://www.noi.cn/xw/2020-05-13/715542.shtml

  2. [一本通C++教程]

    网址:https://www.bilibili.com/video/BV1T7411h7dm