本讲对应视频《CSP复赛专题13-递推》(12′03″)。在专题12讲完递归之后,本讲顺势引出它的“对偶写法”——递推: 从初始条件出发,沿递推关系正向填表。通过昆虫繁殖(双数组递推)与踩方格(三状态递推)两道经典题, 把“初始条件 + 递推关系”两大关键练熟,并提炼出一维 dp 填表的三步法。
学情上的典型困难:① 写得出循环,却说不清“递推关系到底依赖前面哪几步”,下标常常越界或滞后数写错; ② 昆虫题里“卵 2 个月长成成虫”的延迟,常被误写成 b[i-1]; ③ 踩方格里“向东不能从西来”的方向约束,容易被忽略,导致 r[i] 多算一项。
(配套互动课件共 18 页,含 6 个可交互动画:① 递推vs递归 ② 昆虫逐月推演 ③ 昆虫生命周期 ④ 踩方格三状态 ⑤ 踩方格路径枚举 ⑥ 通用模板。)
① 递推两大关键;② 昆虫繁殖 a/b 双数组;③ 踩方格 u/r/l 三状态; ④ 一维 dp 三步法。
① “卵滞后 2 月”对应 b[i-2](不是 b[i-1]); ② 踩方格“向东不能从西来”导致 r[i] 少一项;③ 递推关系下标的越界保护。
| 环节 | 时间 | 教师活动 | 学生活动 | 设计意图 |
|---|---|---|---|---|
| ① 概念与套路 | 6′ | 第 2–3 页讲“递推=初始条件+递推关系”,第 4 页动画①让学生先猜递归怎么拆、递推怎么填再揭示 | 口头报 f(6) 两种算法的步骤 | 建立“正向填表”的心智模型 |
| ② 例题1 昆虫 | 12′ | 第 5 页讲题意与递推式;第 6 页动画②逐月推演,停在 b[i-2] 让学生说为什么是 2 不是 1;第 7 页动画③看生命周期延迟;第 8 页代码走读 | 说出“卵要 2 个月”所以加 b[i-2] | 把最高频失分点(滞后数)讲透 |
| ③ 例题2 踩方格 | 14′ | 第 9 页题意;第 10 页动画④三状态逐行填,问 r[i] 为何比 u[i] 少一项;第 11 页动画⑤枚举所有路径验证 f(3)=17;第 12 页代码与化简 | 预测 u/r/l 各值;数出 f(3)=17 | 用实证巩固递推式正确 |
| ④ 通用模板 | 6′ | 第 13 页动画⑥展示一维 dp 三步法;第 14 页对比递推与递归选型 | 归纳三步法口诀 | 形成可迁移的方法 |
| ⑤ 检测 | 7′ | 第 15 页三道辨析 + 第 16 页当堂测评三题,配合椰程锦囊 | 完成检测 | 形成性评价 |
问:昆虫繁殖为什么用两个数组而不是一个?
答:因为“成虫数”和“新产卵数”是两种互相依赖的状态,而且卵有 2 个月的滞后。
单数组硬凑会丢失“卵何时长成成虫”这个时间差,所以拆成 a(成虫)、b(卵)最清楚,也最不容易错。