椰程信奥 · 说课稿
单文件互动课件 14 页 · 二维前缀和模拟器 · 两道真题(CARPET / LASER)
一、教材与学情
课题专题6 · 前缀和与差分(二)—— 二维拓展
课时1 课时(45 分钟)
对应真题地毯覆盖(二维差分)、[HNOI2003] 激光炸弹(二维前缀和)
学生已掌握一维前缀和与差分。二维的障碍不在思想而在公式记忆:四个符号位、四个角,极易记混。本讲的关键是把公式还原成容斥过程,让学生能现场推导而非死记。
二、教学目标
知道
能准确写出二维前缀和的构建公式与子矩阵和公式,以及二维差分的四角改法。
理解
能用容斥原理解释每一个符号的由来,而不是靠背。
应用
能独立完成「地毯覆盖」与「激光炸弹」,并正确处理下标平移、数组尺寸、范围截断。
三、教学流程
「一维我们说『多算的减掉』。到了平面,多减的还要加回来——这就是今天唯一的难点。」(第 2 页)
先并排放一维与二维的公式表,让学生自己发现「2 处变 4 处、减 1 处变减 2 处加 1 处」的对应关系。
「上方加、左方加,重叠的左上角被算了两次 —— 减掉一次。」(第 3 页)
务必用具体数字走一遍,不要只在公式层面讲。第 5 页的模拟器按 S[1][1] → S[4][4] 顺序逐个点亮,每步都把三项来源和当前值显式列出,让学生跟着算,而不是看着算。
「子矩阵和:减上、减左,左上角被减了两遍,加回来。口诀——减两加一。」(第 4 页)
教一个现场验公式的办法:代入 1×1 特例,看能否算出 a[1][1]。这个技巧比任何记忆口诀都可靠,务必让学生练熟。
「二维差分只改四个角。右下角是加,不是减——因为它被抵消了两次。」(第 6 页)
这里学生最容易错。我会在黑板上画一个 3×3 的区域,逐格推演四个角的影响范围,让他们亲眼看到右下角那格先是被减两次、必须加回一次。
「地毯覆盖就是模板:改四角 → 前缀和还原 → 输出。」(第 7–8 页)
讲评时钉死三件事:数组开 n+2、右下角符号、行末空格。第三点建议让学生用 j==n?'\n':' ' 一次写对,避免养成先输出空格再删的习惯。
「激光炸弹有两个隐藏杀招:坐标从 0 开始,和 R 可能是一亿。」(第 9–10 页)
先不告诉学生,让他们直接写,然后问:「R=10⁹ 时 s[i-R][j] 是多少?」——他们会发现是巨大负数。这个自找的坑比教师提醒记得牢十倍。
四、板书设计
构建:S[i][j] = S[i-1][j] + S[i][j-1] − S[i-1][j-1] + a[i][j]
查询:sum = S[x2][y2] − S[x1-1][y2] − S[x2][y1-1] + S[x1-1][y1-1] (减两加一)
二维差分:d[x1][y1]+=x d[x2+1][y1]−=x d[x1][y2+1]−=x d[x2+1][y2+1]+=x
激光炸弹:坐标 +1 平移 R = min(R, 5001) 枚举右下角从 (R,R) 起
五、亮点与反思
亮点一:把公式还原成容斥过程。全程不出现「背下来」,每个符号都有几何解释,学生考场上想不起来也能现场推。
亮点二:1×1 特例验公式。给了学生一个可迁移的自检手段,对未来任何容斥型公式都适用。
可改进:激光炸弹的 100MB 全局数组与爆栈问题只用了板书提醒,下次可现场演示「放 main 里直接段错误」,冲击感更强。