主要考点: 整数拆分、数位分离在多个年份中频繁出现,如 2010 年 “数字统计”、2011 年 “数字反转”、2013 年 “计数问题” 等题目中均有涉及。
质因数分解也是常见考点之一,如 2012 年 “质因数分解” 题目。
近两年增加了对数学方面的考察,例如 2020 年 “优秀的拆分” 涉及二进制和模拟,2023 年 “小苹果” 为数学题目。 纯模拟题目也是 T1 的重要组成部分,如 2014 年 “珠心算测验”、2016 年 “买铅笔”、2017 年 “成绩” 等。
要注意时间复杂度和空间复杂度的问题,2023 年有不少学生因数组开得过大导致 0 分出现 。
以模拟为主,涉及算法类的题目较少。如 2010 年 “接水问题”、2012 年 “寻宝”、2015 年 “扫雷游戏” 等都是模拟题。
从 2019 年开始,每一题都需要做时间复杂度的优化,不做优化往往只能拿到一半分。例如 2019 年 “公交换乘” 使用队列做时间优化,2020 年 “直播获奖” 需选择合适的排序方法,2021 年 “插入排序” 不能按照题目的要求去模拟,而是寻找更优方法,2022 年 “解密” 使用二分或数学方法进一步求解,2023 年 “公路” 使用贪心策略优化。
这是官方设置的一个门槛,也将是一个趋势,是决定能否拿到省一的关键。平时刷题要注意此方面问题的思考和训练,不断积累,养成好的习惯。
DP(线性 / 背包)出现次数最多,如 2012 年 “摆花”、2013 年 “小朋友的数字”、2019 年 “纪念品”、2020 年 “方格取数”、2022 年 “上升点阵” 等题目。
考点还分布于数据结构(栈、队列、树)以及字符串大模拟和搜索 (DFS/BFS) 上。例如 2013 年 “表示求值” 涉及字符串和栈,2017 年 “棋盘” 考查 BFS,2018 年 “对称二叉树” 考查二叉树。
近五年考了 3 次 DP,对于 T3 而言动态规划是需要攻克的重点(CSP-J 重点线性,背包和区间三种 DP)。
基本的搜索,数据结构,字符串模拟本身就是学生学习到这一阶段需要练习的重点。从 T3 开始,题目的模型化开始显现,不再是 T1T2 的无法寻找到共同点的模拟题。
DP 的学习没有捷径,需要通过大量的刷题来积累解题经验,建议多做 DP 的专项训练。
DP / 图论 / 树型数据结构是出现频率最高的三种题型。例如 2017 年 “跳房子” 涉及线性 DP、二分、优先队列,2012 年 “文化之旅” 考查图论,2018 年 “对称二叉树” 考查二叉树。
图论是只在 T4 上开始出现的知识点,包括图上 BFS/DFS、最短路、拓扑排序。例如 2019 年 “加工零件” 考查图论和 BFS,2023 年 “旅游巴士” 考查分层图和最短路。
树型数据结构(栈 + 树 + 搜索 + 结合题意)整体解题方式基本上没啥区别,2020 年和 2022 年几乎一样。
19 年之前图论几乎不会考最短路和拓扑排序,但最近最短路也考了两次,平时要注意这块知识点的储备。
最后,祝愿每一位参加 CSP竞赛的同学都能在考试中发挥出自己的最佳水平,顺利通过考试,实现自己的编程梦想!加油!