适用场景
- 给社团新人讲第一次算法课
- 自己复习时按五节顺序过一遍
- 准备竞赛前补上树上查询这一块
PROMPT
一个大二学生明天要给社团新人讲树链剖分,去年讲砸过一次,新人卡在 dfs 序和重儿子那里就没跟上,这次要一份能照念的讲义。 【背景】 1. 写听众情况:会写递归、知道邻接表存图、没做过树上路径题、一半人没写过线段树。 2. 写要解决的问题:一棵 8 万节点的树,5000 次路径求和加单点修改,要求两秒内出结果。 3. 写课堂条件:四十分钟、五张手绘图、现场要在一棵 9 个节点的样例树上跑通。 【目标】 1. 让新人说清重儿子是按什么选的。 2. 能手算出一棵样例树的 dfs 序和每条链的链顶。 3. 能照着写出查询里的两个 while 循环。 【风格】 1. 写成课堂讲义,每段配一句口述,可以直接念。 2. 用同一棵 9 个节点的样例树贯穿全篇,不换例子。 3. 不用显然、易得、同理可证这类跳过步骤的词。 【语气】 1. 对没听懂的人重讲一遍,不催也不点名批评。 2. 对已经会的留一道加练,写明练什么。 3. 不用这么简单、这都不会这类话。 【受众】 1. 新人是零基础,最怕被点名回答。 2. 带队学长只关心一节课能不能讲完、课后能不能自己做题。 3. 两边都要能照着讲义跑通样例。 【输出形式】 1. 分五节:为什么需要、重儿子与链、dfs 序、查询与修改、样例走一遍。 2. 每节写要点三条,末尾加一句要问听众的问题。 3. 全文一千二百字内,代码不超过 20 行,变量名用中文注释。