整理知识地图,划清 CSP-S 的边界
这一课只练一件事:把五个阶段学过的内容整理成一张,标出还不熟练的并安排一次有针对性的复习,再完成一张,最后看清 CSP-J 和更高级内容之间的边界在哪里。必会:能完成个人知识地图;能标出自己的薄弱模块;能区分 CSP-J 核心与后续拓展。最小示例:把 S1~S5 每个阶段挑 1-2 个知识点列成表格,在“熟练/一般/薄弱”里选一个,比如“递归”标记为“一般”、“DP 状态设计”标记为“薄弱”。给薄弱模块各安排一次具体复习(比如“周三晚上重做 S3-08 的三道 DP 题”),再对照赛前清单确认编译环境、常用代码片段、时间分配计划都准备好了。边界是不能只写“基础不好”这种笼统标注,也不能把 CSP-S 的更高级算法当成 CSP-J 现在就要会。建议掌握:把薄弱模块按优先级排序,先复习出现次数最多、影响面最大的那个。拓展:知道 CSP-S 大致会遇到更复杂的数据结构和算法模型,但现在只需要知道边界在哪,不必现在展开学习。这里不会在浏览器里运行 C++。
任务 1:先选出该怎么开始整理
先确定整理前该先做什么,再确定该怎么标注。点不认识的词可看基础解释。
必会:能说出为什么要先列出五阶段知识点再判断掌握程度;能说出薄弱模块要具体到知识点并配一次复习安排。这里不会在浏览器里运行 C++,只练习选择和走过程。
开始整理知识地图前,比较合理的做法是什么?先做什么 · 必会
在知识地图里标注“薄弱模块”时,比较合理的做法是什么?怎么标注 · 必会
任务 2:按知识地图、薄弱项标记、赛前清单三步整理
最小示例:把 S1~S5 每阶段挑 1-2 个知识点列成表格。按顺序点三步:先,再,最后做确认。这里不会在浏览器里运行 C++。
必会:能解释每一步为什么这样做。边界:不要跳过“知识地图”直接标薄弱点;每个薄弱模块都要具体到知识点并配一次复习安排,不能只写“基础不好”。
- // 五个阶段:S1 语法工具 ~ S5 赛场整合
- // 知识地图:把每阶段 1-2 个知识点列出来,标注熟练 / 一般 / 薄弱
- // 薄弱项标记:挑出薄弱模块,安排一次具体复习
- // 赛前清单:确认编译环境、常用代码片段、时间分配计划都准备好
三步走完了:知识地图、薄弱模块、赛前清单都落下来了。清单里「常用代码片段」要能随手写出几行关键代码,这里挑最常考的一条:分数在 0 到 100 之间,用统计每个分数出现几次,第一行就得把它。下面是只读脚手架,只留一空给你输入;这里不会在浏览器里运行 C++。
- // 赛前清单里的常用片段:统计每个分数出现了几次(分数 0 ~ 100)
- // 数组里可能还留着上一次测试跑出来的数字,用之前一定要清零
- // 计数数组的第一行
- int main() {
- int n;
- cin >> n;
- for (int i = 0; i < n; i += 1) {
- int score;
- cin >> score;
- cnt[score] += 1;
- }
- for (int score = 0; score <= 100; score += 1)
- if (cnt[score] > 0) cout << score << " " << cnt[score] << "\n";
- return 0;
- }
int cnt[105] = {0}; // 分数最高 100,第 101 个格子才放得下;花括号里的 0 会把整排格子清零
任务 3:CSP-S 衔接边界怎么划
建议掌握:薄弱模块之间也要分先后,先复习的那个。拓展:只需要知道边界在哪,不需要现在就学会。
必会 / 建议掌握 / 拓展:必会是整理知识地图、标出薄弱模块。建议掌握是给薄弱模块排出复习优先级。知道 CSP-S 边界在哪是拓展,现在不用当硬门槛去学。
- // 知识地图盘点结果:递归标为“一般”,DP 状态设计标为“薄弱”,图遍历标为“薄弱”
- // 优先级判断:DP 状态设计在模拟赛里出现次数更多,应该先复习它
- // 边界判断:CSP-S 的更高级数据结构和算法现在只需要知道存在,不必现在学会
- // 赛前清单:编译环境、常用代码片段、时间分配计划都已确认
先判断薄弱模块该按什么顺序复习:
再判断 CSP-S 的更高级算法现在要不要学会:
任务 4:随机小测,看看你是否真的懂了
每次从本课题库抽出三道不同的选择题。题目与解析已通过校验,答完后看解析,不要只看分数;拿不准就回到对应任务再看一遍。