后面的计划 · 学习路线图

更新于 2026-10-17 · 配合 课程对照表 与 ACM 校队选拔训练计划 使用

现在在哪
① 程序设计基础 ✅ · ③ 面向对象程序设计 ✅ · ④ 数据结构与算法 进行到 0412(0401–0411 的配题已按本地代码逐题核对并全部提交,0412 配题 P3385 待做)
目标有变化:正在准备浙江中医药大学 ACM 校队提前入队(每周可投入 11-20 小时)→ 逐周安排、比赛计划、要打听的门槛都写进了 ACM 校队选拔训练计划。
下一课:0413 最小生成树(Kruskal / Prim);最近一场比赛:2026-10-18 13:30-18:30 广工月赛(牛客同步赛),当第 1 场训练赛打。
2026-10-17 全库课件升级:33 份课件统一成同一套结构(三句话速览 → 分节 → 坑点清单 → 小测 → 动手练习 + 自查顺序 → 小结 → 下一课),样式重写,全部通过 HTML 自检;速查见 算法总结。

阶段④ 数据结构与算法 · 0412 → 0422

主线,一节课一个主题 + 一组配套题。这本阶段结束后,蓝桥杯省一的算法面基本铺完。

课号主题核心内容配套题
0410并查集路径压缩 + 按秩合并;判连通、判环、分组P3367 · P1551 · P3958
0411最短路 I:Dijkstra贪心 + 堆优化;非负权单源最短路P4779 · P3371
0412最短路 IIFloyd(多源)/ Bellman-Ford / SPFA;负环检测P3385
0413最小生成树Kruskal(并查集)+ Prim(堆),和 0410/0411 直接联动P3366
0414二分查找与二分答案单调性 + check 函数;"最大化最小值"套路P2249 · P1182 · P2678
0415前缀和 · 差分 · 单调栈区间求和、区间加、下一个更大元素P8218 · P2367 · P5788
0416哈希表unordered_map/set;字符串哈希;去重与计数P3370 · P1102
0417字符串匹配:KMPnext 数组、失配跳转;也是 AC 自动机的前置P3375
0418贪心专题交换论证;排序 + 贪心的常见模型P4995 · P1223
0419DP I:线性 DP状态定义、转移、边界;LIS / LCS / 数字三角形P1216 · P1020
0420DP II:背包01 / 完全 / 多重背包;一维滚动数组的方向问题P1048 · P1049 · P1616
0421DP III:区间与树形 DP区间合并、树上最大独立集P1880 · P1352
0422阶段项目把 0401-0421 串成一个能跑的小程序—
离散数学穿插规则
每完成 3 课 ④(约 1.5 周),插 1 课 ② 离散数学。顺序建议:命题逻辑 → 集合与关系 → 图论(正好和数据结构互相对应)→ 组合计数 → 数论基础。
最近的一课是穿插进来的 0201 命题逻辑(0410、0411 之后就该上它)。

阶段⑤ 高级数据结构与算法 · 0501 → 0512

④ 全部走完后进入。这一层是 ACM 校队选拔和"算法岗面试"的分水岭。

课号主题核心内容配套题
0501树状数组 BIT单点修改 + 区间查询,O(log n)P3374 · P3368
0502线段树 I建树、区间查询、单点修改P3372
0503线段树 IIlazy 标记、区间修改P3373
0504ST 表 / RMQ静态区间最值,O(1) 查询P3865
0505Trie 字典树前缀树;字符串集合的快速查询P8306
0506AC 自动机Trie + fail 指针(要用到 0417 的 KMP 思想)P3808
0507数论 Igcd / exgcd / 线性筛 / 快速幂P3383 · P1226
0508数论 II同余、逆元、中国剩余定理(了解层面)—
0509DP 优化单调队列优化、前缀和优化—
0510图论进阶二分图最大匹配、网络最大流入门P3386 · P3376
0511计算几何入门向量运算、叉积判断、凸包—
0512阶段项目综合—

阶段⑥ 工程工具链(并行支线)

不占主线课时。每周 1-2 次、每次 30 分钟,做到哪个勾哪个。

#子主题最小可交付状态
1Git 基础把 D:\c++\LiangXi_LuoGu 变成仓库,每道题一个 commit待开始
2分支与远程branch / merge / push,仓库推到 GitHub + 写 README待开始
3GitHub 协作会开 Issue、提 PR、看懂别人仓库结构待开始
4Linux 命令行cd/ls/cp/mv/rm/cat/grep/chmod,纯命令行找文件看代码待开始
5WSL2 + Ubuntu装好 WSL2,在 Ubuntu 里编译通过现有 C++ 程序待开始
6VS Code 远程开发VS Code 连 WSL,调试配置在 Linux 下跑通待开始
7SSH / 服务器ssh 登录、scp 传文件、nano 改文件开学后用学校服务器练
建议的第一课(10 分钟就能做完):在 D:\c++\LiangXi_LuoGu 里 git init,把现有题目全部 git add . && git commit 一次。
从此以后"我昨天改了什么"一眼就能看出来,写坏了也能回滚 —— 这是本阶段唯一有即时收益的 10 分钟。

阶段⑦ 13 门专业课 · 按学期

学期课程状态备注
大一上
2026 秋
① 程序设计基础主体已学完0001-0015,开学后当复习
② 离散数学穿插学习每 3 课数据结构插 1 课,从命题逻辑开始
大一下
2027 春
③ 面向对象程序设计主体已学完0301-0304,开学后当复习
⑥ 数字电路基础待学理论为主,重点搞懂逻辑门、真值表、卡诺图
大二上④ 数据结构与算法进行中0411 起继续;校内开课时正好复习
⑦ 电路与模拟电子技术基础待学依赖实验室,重点放在理论理解
大二下⑧ 计算机组成原理待学和 ⑥⑦ 串成"硬件三件套"
⑨ 数据库系统原理待学写 SQL + 理解索引、事务
大三上⑩ 操作系统待学进程/内存/文件;和 ⑧ 强相关
大三⑪ 计算机网络待学TCP/IP、HTTP;和 ⑩ 一起看最有效
⑫ 软件工程待学实践性强,依赖团队项目
大三下⑬ 编译原理待学数据结构 + 离散数学的直接应用

支线:现代 C++ 特性

不开专门课,等数据结构题目里自然遇到时顺手补。

特性什么时候会遇到状态
Lambda 表达式写自定义比较器时(sort 的第三个参数)已见过
unordered_map / set0416 哈希表那节课0416 一起学
智能指针用 new 写树 / 图觉得"删不干净"的时候待学
std::move / 移动语义看到"拷贝很贵"的讨论时待学
nullptr现在就可以直接换掉 NULL随手改

支线:算法组千行任务(视觉组实习任务)

任务书在 D:\c++\算法组千行任务\27算法组千行任务.pdf(8 页,7 篇)。和主线不抢时间:C++ 篇现在就能做,OpenCV / ROS2 / Navigation2 那几篇等 ④ 数据结构过半再开。

篇内容最小可交付状态
1. Git 篇建仓 / 连远程 / 上传 / clone / 分支建仓库,分支名用自己名字拼音部分会了
2. C++ 篇打印 / 数据类型 / 循环 / 类与继承 / vector;斐波那契小游戏1.1-1.6 各一个 .cpp待整理
2. C++ 考核任务补全 Robot / Building 类,让给定的 main.cpp 跑通并"符合现实比赛的情况"代码已跑通、已审阅(见下)待补提交材料
3. 编程范式篇OOP 19 集、分层设计、SOLID、serial_driver 解耦看懂 RMSerialDriver::receiveData待学
4. Ubuntu 篇WSL2 / 双系统 Ubuntu 22.04和阶段⑥ 第 5 项合并做待装
5-7. OpenCV / ROS2 / Navigation2图像与轮廓、装甲板识别、pub/sub 节点、导航—④ 过半后再开
考核任务审阅快照(2026-10-13):代码本身完成了 —— g++ 16.2.0 编译 exit=0,200 颗种子跑完没有崩溃、没有不终止(红胜 98 / 蓝胜 102),23 项单元测试全过。

但"符合现实比赛的情况"有 2 处偏差:
① main.cpp:57 选攻击方、main.cpp:66 选目标,都不看 Survive(),所以阵亡的机器人照样开火 —— 实测 60 局里 60 局都是"双方 6 个机器人全灭之后"才分出胜负,残局完全由死人拆家打出来。
② 目标可能是已经阵亡的机器人,这一轮攻击就白费了。

改法两选一:只在自己写的 Robot.cpp 的 Hit 里加两行守卫(不动框架代码,代价是比赛被拉长),或者在 main.cpp 里改成只在存活者中选人。
提交侧还差 3 样:目录不是 git 仓库(本机 git 在 D:\Git\cmd\git.exe)、Cmakelists.txt 是 0 字节空文件(本机没装 cmake)、main.cpp:61 一个未使用变量警告。

四个版本的实测对照(同一批 60 颗种子,种子用 argv 传入,各版本面对同一串随机数):

版本均值轮数中位最大红胜 / 蓝胜
原版(阵亡者也开火、目标可能是尸体)27372800330028 / 32
只有活人开火(目标仍可能是尸体)655028001570033 / 27
活人开火 + 目标只选活人20771200810033 / 27
只在 Robot.cpp 加两行守卫1137532004530032 / 28

上表数据来自 2026-10-16 的对照实验。当时的验证脚本与推荐版文件放在 D:\codex-slills\_wqx\,已按用户要求连同其余验证目录(_w0410 / _w0411 / _w2c / _wcppc / _wdp / _wfix)一起删除 —— 数据保留在本页与下方待办表里,只是不再留文件。

支线:视频参考(B 站「蓝不过海呀」)

平时跟看的频道:「蓝不过海呀」(UID 401399175,粉丝 24.9 万、投稿 88、合集 2 个,简介"动画讲解计算机知识")。动画讲解类,只用来建直觉 —— 它能让你看见 dis 怎么一层层扩散,但替代不了一遍手推和一遍自己敲。

下表按标题和时长整理(内容没有逐集核对,讲法以实际观看为准):

视频时长对应课状态
图(Graph) 定义、术语、性质21:510411 的前置(有向/无向、度、路径)现在可看
图的遍历 - 深度优先搜索 DFS21:430405–0409 的搜索与遍历已学过
拓扑排序30:59(充电专属)0409 拓扑排序与连通性已学过
最短路径 - Dijkstra35:460411 最短路 I(当前卡点就在这)卡点在这
最短路径 - Floyd29:34(充电专属)0412 最短路 II(配 P3385)现在可看
最小生成树 - Kruskal18:18(充电专属)0413 最小生成树(配 P3366)0413 再看
最小生成树 - Prim24:220413 最小生成树(和 Dijkstra 结构像)0413 再看
树的存储结构12:01树的表示(孩子/双亲/孩子兄弟)已学过
树和森林与二叉树的转换19:24树与森林的遍历已学过
线性表三连(顺序表 / 单链表 / 双链表与循环链表)14–21 分阶段一、二的表结构已学过
双向冒泡排序12:25排序那部分已学过
怎么用最省时间(按"动手 > 看书 > 看视频"的习惯)
① 手推先行:先在纸上把课件里的样例图推一遍,再去视频里对答案 —— 反过来会变成"看的时候全懂,关掉就写不出"。
② 只看需要那一段:Dijkstra 那集 35:46,你只需要"每轮取最小 + 更新邻居"那一段,不必全看。
③ 看完必须自己敲:检验标准不是"我看懂了",而是不看任何东西能默写出堆优化那几行,并说清 if (d != dis[u]) continue; 为什么必要。
④ 带「充电专属」角标的集需要充电才能看(截图里能看清的是拓扑排序、Floyd、Kruskal),别当成必备 —— 缺的部分课件里都有。

注:space.bilibili.com 页面和 UID 接口(api.bilibili.com/x/web-interface/card,返回 -352)都带验证码,Agent 抓不到内容;想让 Agent 看某个频道/视频,直接发截图最省事。

支线:ACM 校队选拔(提前入队)

新增目标(2026-10-17)
准备浙江中医药大学 ACM 校队提前入队(每周可投入 11-20 小时)。完整计划 —— 每周节律、时间表、要打听的门槛、ACM 特有的非算法能力 —— 都在 ACM 校队选拔训练计划。这里只记路线图层面的三处变化:
比赛时间说明状态
广工月赛(牛客同步赛,华为杯)2026-10-18 13:30-18:30div3+div4、面向零基础 26 级新生;contest/142131。目标:过 3-5 题第 1 场
Codeforces div4 / div3每周留意场次赛后必须看题解与别人的高分提交;rating 是入队时唯一可查的硬指标每周 1 场
校 ACM 程序设计竞赛(校内赛)等通知(往年一学年一次)最直接的入队凭证,留意学院群与教务处通知等通知
蓝桥杯省赛2027-04大一以试水为主,目标省二2027 春

里程碑时间轴

2026 年 10 月 — 12 月

ACM 提前入队线启动:④ 推进到 0417 左右(每周 2-3 课)+ 每周一场限时比赛与赛后补题;工具链完成第 1-2 项(Git 仓库 + GitHub,正好当"持续投入的证据")。离散数学与千行任务支线暂缓。

2027 年 1 月(寒假)

④ 收尾(到 0422),准备进入 ⑤。目标是"看到一道中等题,能判断出该用哪个数据结构"。

2027 年 4 月

蓝桥杯省赛(大一)。按 ACM 训练计划推进的话,此时 ④ 已完成、⑤ 走过半,目标是省二以上;同一学期留意浙江省"图森未来杯"与团队程序设计天梯赛的报名通知。

2027 年暑假

⑤ 过半。这时带着蓝桥杯 / 省赛成绩 + 可查的 CF 或牛客 rating去谈入队 —— 提前入队的意义就是把"大一下 / 大二上正式选拔"这一步提前半年到一年。

大二

⑤ 收尾 + ⑧ 组成原理 + ⑨ 数据库。开始有人问你"方向"了,但不用急 —— 先把 ⑩⑪ 这两门"所有岗位必考"的课学起来。

大三

⑩ 操作系统 + ⑪ 网络 + ⑫ 软工 + ⑬ 编译原理。这时候再按兴趣选方向(后端 / 嵌入 / 算法 / 图形)。

当前待办

事项说明状态
P5076 普通二叉树已提交;caxun 已补 return,重复值仍会被丢弃那一处判据还在(不影响 AC)已提交
P1160 队列安排已提交(数组模拟版)已提交
0408 三题P5318 / P1605 / P1443 已提交(本地与参考解对拍通过)已提交
0410 并查集P3367 / P1551 / P3958 已提交;两处小瑕疵仍在:P1551 按大小合并比的是根下标、P3958 三项平方和理论可溢出已提交
0411 最短路 I:DijkstraP4779 / P3371 已提交;课件已重写(2026-10-17):先手推四格表 → 逐轮推演表 → 盖章证明三行 → 堆优化与懒删除;P4779 仍缺两行快读、P3371 余一条 -Wsign-compare 警告已提交
0412 最短路 II课件已出(Bellman-Ford / SPFA / Floyd + 负环检测),配题 P3385 待做(本地还没有代码)题待做
0413 最小生成树下一课,配 P3366(Kruskal 直接拼 0410 的并查集 + 排序)可以开始
ACM 校队提前入队目标已定(2026-10-17),每周 11-20 小时;计划见 ACM 校队选拔训练计划;待打听招新时间 / 形式 / 门槛;10/18 广工月赛当第 1 场训练赛进行中
千行任务 C++ 考核任务代码已跑通并审阅(当时的参考文件已按新规则删除);待补 git 仓库、可用的 CMakeLists.txt 后提交。ACM 线启动后暂缓暂缓

课程对照表 · 课程总览 · 刷题清单

预期节奏:主线每周 2-3 课 + 每周一场限时比赛(ACM 线启动后);工具链每周 1-2 次。慢一点没关系,理解扎实最重要 —— 但比赛只用「能不能凭空写出来」检验。