← 完整学习路线

UNIT 44 / 78 · W06-3

从有序候选到图上的发现顺序

本单元预计 4 核心小时。可以分成多个学习时段,按完整小节推进;停下来时留下输入、命令、结果和下一步。

时间包含阅读、编码与检查,是学习预算而非期限。打开此页只保存阅读位置,不代表通过验收。

01 / READ

先知道自己在观察什么

二分、排序与堆:保留哪些候选 →

只先读lower_bound的半开不变量与最小堆保留边界,再手推重复值。

递归、树与图:沿着依赖和边访问 →

接着读树的基础情况和BFS入队标记;按邻接表逐层画队列。

先备不清楚时,沿章节入口补读;不要依赖翻过页数判断进度。

02 / PREDICT & RUN

先留下自己的预测或独立尝试

预测[1,3,3,7]的最左3位置;运行后复述每次为何严格缩短区间。

第一个不小于目标的位置 →
源码下载与编译入口

下载到自己的练习目录。按本节给出的完整命令编译;多文件与driver要求见原任务。需要时查阅文件保存与编译操作 →

16-a.cpp

先保存预测,再核对正文标明的预期或诊断。完整构建、多文件与设备实验按原任务命令执行。

03 / CHANGE ONE THING

通过一个变动看清原因

在副本增加[2,2,2]查1、2、3的边界,并保留空输入。

修改后应观察到什么

下标分别为0、0、3;尾后下标不被解引用。

04 / DO IT YOURSELF

换一组条件,独立解决

独立写无权BFS,邻接表[[1],[0,2],[1],[]]从0开始;同时用纸上树给空树与三节点链计算高度。

用这些条件检查自己的实现

  • 距离[0,1,2,-1];入队时标记,每个可达节点只入队一次。
  • 按节点层数,空树高度0、三节点链高度3;说明深递归风险。
05 / EXPLAIN & CHECK

用证据决定是否进入下一单元

  1. lower_bound返回结束位置时调用者该怎么办?
  2. BFS首次发现最短为什么依赖无权/等权条件?

本单元的验收依据

二分三个边界与BFS隔离节点测试通过;堆与更多图题放在既有4h算法复习,不额外开一条课程。

留下自己的代码或推演、测试输入、真实输出和仍不确定的问题。未达到要求时,下一次继续本单元。