
简介面向CSP-J备赛的2021暑假教学计划PDF系统规划了12天的算法与数据结构集训内容从冒泡、选择、插入、桶、快速排序等基础排序入手逐步覆盖贪心算法、二分查找、队列与栈的数组模拟及STL应用、递归与深度优先搜索、树与二叉树的前中后序遍历、广度优先搜索、图的邻接矩阵和邻接表存储、最短路径Floyed、Dijkstra、递推与基础动态规划、简单背包与区间DP、初等数论的整除/同余/欧几里得算法、组合数学的排列组合与杨辉三角形知识安排由浅入深紧扣CSP-J考纲。包体为单个PDF文件大小仅137KB便于下载、打印或课堂投屏文件按天分节每日列出具体教学内容和训练重点并附21天总计划适合培训机构作为暑期课程大纲也可供学生自学时对照安排。已有302人学习下载对暑假系统备战CSP-J的选手和指导老师而言是一份结构清晰、可直接落地的教学参考。1. 一份 CSP-J 教学计划挡在暑假和拿奖之间最实在的抓手暑假还剩两个月学员零基础九月初赛、十月复赛——CSP-J 的备赛窗口就压在眼前。教研库里一份编号 681 的「2021暑假 CSP-J 教学计划.pdf」被反复调阅不是因为排版多精致而是因为这类教学计划文档背后是一套完整的教研骨架知识点怎么分级、课时怎么分配、作业怎么配比、评测怎么判、翻车了怎么拉回来。下面按这条流水线拆开讲先给知识分级和十六周进度表再给例题、作业、评测的实操参数然后列出暑期集训最常翻车的几个现场最后落到复赛前的骗分技巧与复盘习惯。第一次带班的教练能照着搭课带过几年的老师也能拿这些参数回来校准自己的节奏。2. 从零到复赛CSP-J 暑期教学的知识分级与十六周进度表先定总盘子。CSP-J 复赛的知识范围是固定的语法、基础算法、入门数据结构三块。最常见的失败开局是把语法拉长到六周觉得「基础不牢地动山摇」结果算法只剩两周学员上考场只会写循环。我一般把整个备赛窗口切成十六周前八周是暑假集训每周两次课加一次周末训练后八周进入开学节奏每周一次课每天一道保底题一直撑到十月复赛。这份节奏的底气来自一个判断CSP-J 复赛两道送分题考的是读题和模拟两道拉分题考的是搜索和动态规划语法讲得再细也拿不到后面的分。2.1 三层知识模块怎么拆语法、算法、数据结构各占多少课时CSP-J 的知识边界比大多数人想的窄。别碰线段树、别碰最短路、别碰高精度优化那些是提高组的活。按我常用的课时分配语法基础 20 课时、基础算法 22 课时、数据结构与 STL 6 课时初赛专项穿插进行不单独占大块时间。知识层覆盖内容建议课时占比语法基础变量与类型、分支、循环、一维数组、字符串、结构体、函数2040%基础算法模拟、枚举、排序、二分、贪心、递推、DFS、BFS、线性DP、01背包2245%数据结构与 STL栈、队列、vector、sort 自定义排序、优先队列612%初赛专项进制与位运算、阅读程序、完善程序穿插进行3%语法占四成不是浪费。复赛四道题里至少有一道是「读题加模拟」字符串处理不熟的学员连 2022 年复赛第三题那种长题干逻辑表达式都撑不住另一道送分题通常是枚举或二分答案靠的同样是「把题意翻译成代码」的基本功。算法的 22 课时才是拉分区DFS 和 BFS 是搜索题的骨架线性 DP 和背包是动态规划入门的两个必考模型贪心和二分经常拼在同一个 check 函数里。数据结构只给 6 课时因为 CSP-J 考到栈、队列时直接拿 STL 就能过的程度自己写链表性价比极低。选型理由再说透一点为什么优先队列只讲「知道它是干嘛的」而不深挖堆的实现因为复赛是三个半小时四道题考察的是在有限时间内写出能拿分的代码不是现场造轮子。凡是 STL 里现成的容器教学上默认学员会用即可原理放到提高组再补。初赛专项占比压到 3% 也是个反直觉的决定后面第 4 章会细讲为什么突击初赛是最常见的翻车现场。2.2 十六周进度表每周主题、例题量与验收标准进度表的单位不是「天」而是「周」。我见过把计划细到每一天的教练结果第 3 天学员请假、第 5 天题太难整张表立刻作废。周粒度足够灵活又不会让进度失控。下表是完整的十六周模板前八周暑假集训后八周考前巩固。周次训练主题当周例题量验收标准1环境搭建、cin/cout、变量与类型4独立完成 AB 与三数均值编译零报错2if/switch 分支与逻辑表达式6会写闰年判断、分段函数逻辑运算符优先级不混淆3for/while 循环与嵌套循环8循环互转无障碍能打印九九乘法表、数字三角形4一维数组、桶计数、前缀和8理解下标含义10 万级数据计数不超时5字符串处理string 常用方法与逐字符遍历8能完成去重、字典序比较、单词统计6函数、递归入门与递归树6能写带返回值函数画得出 n4 的递归树7结构体、sort 与自定义 cmp6能按成绩排总分懂 cmp 返回 true 的含义8二分查找与二分答案6模板默写不出错能判断 check 的单调性9贪心区间、排序类经典模型6每道题能写出排序依据能构造一个反例10DFS全排列、迷宫与回溯8独立写出「到终点就输出」的框架恢复现场不忘11BFS最短路步数与状态去重8队列写法熟练能解释为什么第一次出队即最短12线性 DP、LIS、01 背包8能写出转移方程分清「选与不选」两种转移来源13初赛专项进制、位运算、完善程序6整套初赛模拟选择部分得分率不低于 60%14复赛模拟赛 3 场全文件读写3 场每场每题至少拿到暴力分15近三年真题套卷复盘4 套错题 48 小时内重写通过16模板默写、骗分策略、考场时间表每天 3 题所有模板 20 分钟内默写完成这里解释三个容易被误解的参数。第一例题量的含义是「老师带做 2 题加学员当堂独立完成剩下」的总数不是老师全讲一周 8 题对应两次课加一次周末训练量是够的但要求每个题都是一个独立的小模型不能重复刷同质题。第二验收标准比进度本身更重要第 13 周的初赛专项放在暑假末尾而不是九月初赛前才突击是为了把九月的周末留给复赛模拟题。第三第 16 周的「模板默写」指二分、DFS、BFS、LIS、背包五个模板手写不查资料考场上的紧张环境下肌肉记忆比理解可靠得多。2.3 单节课 90 分钟标准结构讲练比 1:1.3 与下课验收进度表定的是「讲什么」单节课结构定的是「怎么讲」。信息学是手艺活看懂了不等于会写所以我不接受一节课从头讲到尾。标准结构如下时间段环节具体做法0-10 分钟作业复盘只讲 AC 率低于 60% 的题其余课后看题解10-35 分钟新知识加 1 道例题推到关键状态转移处停住让学员猜下一步35-75 分钟当堂练习 2 道第 1 题模仿例题第 2 题换条件或换数据范围75-90 分钟下课验收每人一句话写下「今天卡在哪」写完才能走讲练比大致 1:1.3讲 35 分钟、练 40 分钟。学员举手求助时我要求自己按固定顺序给提示先问「数据范围看了吗」再问「这题的暴力做法是什么」最后才问「你的代码哪一行输出不对」。直接给答案是最省事但最不负责任的方式两周后那个错误换个马甲照样出现这是带班带出来的血泪经验。下课验收那句话是给教练自己的反馈用的——如果连续三节课超过一半学员写「不知道从哪下手」说明新知识讲得太快下一节课的前 10 分钟必须回头补。3. 例题、作业与评测CSP-J 集训落地的三个实操参数进度表只解决「教什么」真正决定集训质量的是三个落地参数例题怎么配、作业出多少、评测怎么判。这三件事在教学计划里经常写得很含糊比如「精选例题」「适量作业」但一线带班的都知道含糊的参数等于没有参数。参数一旦定死教研和备课就有了判断基准学员的反馈也能对照着参数快速定位问题。3.1 例题三档制模仿、变式、综合按 5:3:2 配比我给每个主题配题时使用三档制比例固定在 5:3:2。模仿题是指把课堂例题的输入换成另一组数字、把循环次数改一下就能过的题目的是让学员把刚学的语句结构固定成肌肉记忆变式题要换掉一个关键条件比如把「求最大值」改成「求第二大值」把一维数组改成二维逼学员理解而不是背诵综合题是两个主题的拼接最典型的是「二分答案加贪心 check」「DFS 加回溯去重」这类题出现在复赛第三、四题的位置平时不练考场不可能现场拼出来。档位定义举例二分主题配比模仿题改输入不改思路在有序数组中查找目标值5变式题换一个关键条件查找第一个大于等于 x 的位置3综合题两个主题拼接二分答案求最小值加贪心验证可行性2这套配比的道理在于复赛的难度分布第一题全是模仿题水平第二题是变式题水平第三、四题是综合题水平。如果平时只刷模仿题学员会觉得「我都做出来了」一到考场看到变式就懵。我常用的检查办法是学完一个主题后随机抽一道变式题让学员上台讲思路讲不出来就说明例题配比里变式不够需要临时补题而不是赶进度。3.2 作业量参数与 40 分钟阈值作业量不是越多越好而是「完得成、有挑战」。我的默认参数是周一至周五每天一道保底题周六两到三道每周作业总量与当周例题量持平作业总时长控制在课堂时长的 1.5 倍以内也就是每周两次课加一次周末训练共 5 小时作业不超过 7.5 小时。超过这个量学员开始抄题解抄完的题等于没做等于把时间全浪费了。单题难度的硬阈值是 40 分钟。一道题独立思考超过 40 分钟没有实质进展继续耗下去边际收益为零这时候允许看题解但有一个前提看完题解必须关上资料在 24 小时内把代码默写出来并提交通过。这个「允许抄但必须重写」的规则是防止学员从「做题」变成「看题」的关键。作业完成度的验收标准是 AC 率 80% 以上才算过——注意这里说的 AC 率是「独立写出的代码一次提交通过的比例」不是作业数量完成率。一个学员提交了 10 题但 8 题都 WA 过两轮说明题目偏难或基础不牢下周必须降档。3.3 OJ 评测纪律与对拍脚本集训队从一开始就要建立一条铁律本机运行通过不算过OJ 上 AC 才算过。本机「通过」掩盖了太多问题——数组越界、未初始化变量、多组数据忘记清空这些错误在本机小数据上根本不会暴露到评测机上就是 RE 或 WA。我要求学员从第二周开始就必须用 OJ 提交哪怕在家写也要把代码粘到 OJ 上跑一遍才算完成作业。评测纪律还包括提交前自查三项数组开到了题目上限加 5、变量类型是否够大、多组数据是否在循环内清空。对拍是这个阶段性价比最高的排错工具。所谓对拍是用一个保证正确的暴力程序和一个待验证的「正解」在同一组随机数据上比较输出一旦不一致就说明正解里有黑匣子逻辑。我一般会教学员在复赛前两周自己搭这个脚本#!/bin/bash # 对拍脚本生成随机数据比较暴力程序与正解的输出 for i in $(seq 1 100); do python3 gen.py data.in # gen.py 生成小范围随机数据 ./brute data.in a.out # brute 是暴力实现保证正确 ./solve data.in b.out # solve 是要验证的“正解” if ! diff -q a.out b.out /dev/null; then echo 第 $i 组数据不一致输入已保存到 data.in break fi done脚本逻辑不复杂gen.py 负责生成随机测试数据brute 是学员为同一道题写的暴力版本solve 是参赛要用的优化版本。diff 比对输出不一致就停下来保留现场。两个参数值得注意数据范围一定要小到暴力程序跑得完否则对拍一次要等几分钟循环次数 100 组是下限追求稳妥可以加到 1000 组但对拍程序本身跑得快才值得加。对拍能抓住的坑很典型——二分边界取错、贪心排序依据写反、回溯时忘记恢复现场这些在黑匣子里藏得住的错误对拍十次以内基本现形。4. 暑期 CSP-J 教学最容易翻车的 5 个现场现象、原因与解决办法带暑期班和带学期班完全是两回事学期班有学校课业托底暑假班是零基础学员连续高强度输入任何一个环节设计失误都会在两周后集中爆炸。下面这五个现场是我和身边教练反复踩过的每条按现象、原因、解决三步写你可以直接对照自己的班诊断。4.1 语法讲了三周学员还在编译报错上卡十分钟现象第三周做循环练习题还有三分之一学员对着cin n少了、分号写成全角这类编译错误反复报错一节课下来时间全耗在找错上题目根本没写几道。原因语法阶段的练习量不够或者说练习方式不对。编译错误这种东西看老师演示一百遍不如自己报错十遍很多学员前两周在 OJ 上提交的次数太少对编译器的脾气完全没感觉。解决从第一周就强制用 OJ 提交并且要求学员把编译报错信息原样复制给老师看养成「先读报错再问人」的习惯。我在第二周结束时会做一次「十分钟编译排错」小测给一段藏着 5 个语法错误的代码不改逻辑只改语法限时十分钟找出全部错误。这个训练做两次编译报错卡壳的问题基本绝迹。4.2 递归讲完DFS 依然全员写不出来现象递归课听懂了课后作业的阶乘、斐波那契都会写但到第十周讲 DFS迷宫题一上手就全员卡住。原因学员学递归时只记住了「函数调用自己」这个语法脑子里没有「递归树」和「状态」这两个概念。DFS 比裸递归多了一层回溯的要求没有状态树的直觉写出来的代码经常是死循环或者漏了恢复现场。解决讲 DFS 前先花一节课专门画递归树n3 的全排列把每一层选择画成树形图标清「进入下一层」和「回到上一层」的位置。写代码时要求三件套固定顺序先写终止条件到终点就输出再写当前层枚举最后写恢复现场。这个框架背到形成肌肉记忆比理解原理先一步到位考场上是靠它保命的。4.3 贪心一讲就懂一写就错全凭「感觉」现象贪心课上的例题都听明白了作业里换个场景立刻错一半。问学员为什么这样排序回答是「感觉应该这样」。原因贪心的正确性证明是教学里最常见的黑匣子教练图省事跳过证明学员就只能靠感觉猜排序依据。贪心题的数据只要稍微刁钻一点感觉就会翻车。解决从第一道贪心题开始立两条规矩。第一每道题必须写出明确的排序依据比如「按结束时间升序排序因为结束越早留给后面的区间越多」写不出来就不许写代码第二每道题必须尝试构造一个反例构造不出来才说明这个贪心策略值得信。这两条规矩坚持三周学员的判断力会有肉眼可见的提升遇到新题至少知道先去怀疑排序依据而不是直接埋头写循环。4.4 初赛突击挤掉复赛训练两头都落空现象九月初赛前两周教练把复赛训练全部停掉改成每天刷初赛选择题和阅读程序初赛是过了但复赛前两周手感全无模拟题 AC 率暴跌最终复赛成绩比暑假末期还差。原因初赛和复赛是两种完全不同的考察方式初赛考知识面复赛考代码能力。用两周时间突击初赛等于用复赛的黄金训练期换初赛的几分而初赛本身过线分并不高根本不需要停掉复赛训练来换。解决初赛专项从暑假第 13 周开始每周固定 1.5 小时做一套初赛模拟题的选择部分其余时间照常练复赛题。初赛的阅读程序和完善程序本质上就是「读代码」和「补代码」练复赛写代码本身就是最好的初赛准备。初赛复习控制在总课时的 3%不是轻视它而是它真的不值得更多。4.5 作业难度失控学员从「刷题」变成「抄题解」现象作业完成率很漂亮但课上提问答不上来OJ 提交记录里同一道题提交了七八次才过还有的直接把题解代码原样贴上去。原因作业题超过了学员的最近发展区。零基础学员遇到完全没思路的题第一反应不是思考而是找现成答案抄一次就会有第二次最后形成依赖独立思考能力直接退化。解决套用第 3 章的 5:3:2 配比重新检查作业题保证每天保底题是模仿题水平让学员每天都有「我自己做出来了」的正反馈。一旦发现某道题全班 AC 率低于 40%这道题降档处理要么拆成两道小题要么在下一节课前 10 分钟带着重新走一遍思路而不是放任学员去抄。抄题解的问题靠堵是堵不住的只能靠调整难度让学员不需要抄。5. 复赛前两周骗分技巧、暴力对拍与复盘清单5.1 骗分不是玄学暴力分、部分分与特判的优先级「骗分」在信息学竞赛圈里是正经的得分策略不是作弊。CSP-J 复赛每道题按测试点给分数据范围通常分三档小数据、中等数据、大数据。对一道完全没思路的题放弃是不可接受的正确顺序是先读数据范围n 小到能暴力枚举的直接上 DFS 暴力拿满小数据那一档的分再找特殊性质比如数据全是正整数、答案可能为 0 的边界最后把暴力程序提交能过几个测试点算几个。我常跟学员说复赛四道题保证每题拿到小数据和中档数据的分总分就够到二等奖线了。暴力分从来不是丢人的分它是考场上的后悔药——正解没写出来时它是唯一能落袋为安的东西。提示每年的测试点分档以当年官方公布的评分规则为准教学时用最近三年真题的题面数据范围做训练素材让学员养成读完题先标数据范围的习惯。5.2 考场时间分配与最后一课的复盘清单复赛三个半小时四道题最怕的是学员在第一题死磕正解磕完发现只剩四十分钟。我给学员的固定考场时间表是前 15 分钟通读四道题每道题标出数据范围和暴力分上限然后从最简单的题开始每道题先写暴力保底有剩余时间再优化。最后一节课我会发一张复盘清单让学员按顺序自查文件名是否与题目要求一致、输入输出是否用了 freopen、数组是否开到了题目上限再加 5、多组数据是否清空了状态、long long 是否够用。这张清单要在模拟赛里用过三次以上考场才不会漏项。我个人的习惯是每次模拟赛都强制用文件读写跑不用控制台交互。2021 年我带的一个学员复赛第二题正解写完了唯独忘了加 freopen整题 0 分那年他二等奖差 5 分——这种失误一辈子遇到一次就够。从那以后我带的班从第 14 周开始所有模拟赛一律模拟真实评测环境文件名、读入方式、输出格式全部按比赛规范来把这个动作练成条件反射。赛前两周的每一天学员只需要做三件事默写五个模板、做一道综合题、用对拍脚本验一道旧题。做到这三件事暑假这两个月的功夫就都能稳稳落到分数上。希望帮到你。本文还有配套的精品资源点击获取