竞赛 > CCSP > 备考专区
CSP高分说 | 四川大学林宸:CSP助我夯实基础,开启大学算法竞赛之路
2025-05-16 阅读量:0 小字

四川大学林宸在第37次CSP认证考试中获得450分,第38次CSP认证考试将于6月8日举办,报名正在进行中。每年CSP高分考生(200分及以上)均可报名参加CCSP竞赛,CCF不定期邀请CSP高分和CCSP获奖选手分享经验,希望能够帮助同学们取得更大的进步。



图片

非常欢迎更多CSP优秀学子分享自己的宝贵经验,联系:csp@ccf.org.cn



一、在代码中成长:从入门到竞赛的日子


大一上学期,四川大学网络空间安全学院开设了 C 语言程序设计基础课程,这是我第一次正式接触编程。从一开始对着代码不知所措,到逐渐理解编程逻辑,我慢慢对这门学科产生了浓厚的兴趣。学习编程少不了大量练习,我从四川大学的OJ刷题平台和ACM平台开始,通过不断做题积累经验。随着能力提升,我又尝试了洛谷、leetcode、牛客、CSP模拟测试网站等更多平台。每完成一道题,都像是解开一道谜题,让我很有收获感。


大二下学期,我加入了四川大学ACM集训队,在队友的推荐下,开始接触 Codeforces 和 Atcoder,接触到了更丰富多样的算法题目,也学习到许多巧妙的数据结构,每次钻研其中,都让我对编程有了更深的认识。到了大三,我和队友一起参加各类算法比赛。备赛时,大家会一起讨论题目思路、分配任务;比赛过程中,全神贯注地编写代码、调试程序;赛后也会一起复盘总结,分析不足。在大三上学期的 XCPC 比赛中,我们团队获得了银牌。这份成绩让我很高兴,但同时也让我看到了和顶尖选手之间的差距。经过考虑,我决定继续留在四川大学ACM集训队,希望能通过更多的学习和练习,在算法竞赛中取得更好的成绩。


图片

ICPC 昆明站和CCPC省赛获奖证书



二、第 37次CSP认证经历


我报考CSP主要出于几方面考虑。首先,CSP认证能系统检验算法能力,通过备赛能扎实提升编程和逻辑思维。其次,拿到200分以上可获得CCSP竞赛报名资格,这是更具挑战性的算法舞台,能进一步拓展我的竞赛视野与能力。此外,人大、北航等高校认可CSP成绩,能替代夏令营机考环节,为升学增加便利。从长远看,企业招聘实习和工作时,优秀的CSP成绩也是专业能力的直观证明,能为职业发展积累优势 。


本次认证中,第1题侧重编程基础,按题目要求按部就班地进行模拟运算,只要细心就可顺利完成,属于比较友好的 “开胃菜”。第2题是经典的类似背包问题的动态规划题,我采用的策略是枚举第一天喂给机器人的苹果数量,将原问题巧妙转化为一个规模更小的子问题,再运用n×m复杂度的动态规划算法,逐步递推求解,从而找到最优解。



第3题相对复杂,是一道较为麻烦的模拟题。考试时,考虑到时间分配和题目难度,我选择先跳过它,去攻克第4题,之后再回过头来仔细钻研。这道题的关键在于精准区分两种赋值方式,根据题目给定的n的范围,我们能采用n2算法来实现。在具体实现过程中,每次求解一系列变量的长度时,我选择直接将所有变量的长度一次性算出。这里面存在明显的递归结构,我将其看作是有向无环图上的动态规划问题。为了提高效率,在每次进行第二种赋值操作时,我着重维护图的结构。在实际编写代码时,双向维护变量依赖关系能更好地梳理逻辑。同时,这道题涉及大量字符串读取操作,由于担心直接使用字符串作为变量标识会导致超时,我预先做了一步预处理,把字符串变量映射成唯一正整数,仅保留字符串常量的长度属性,并重新解读每条指令,将指令解读和实际模拟两部分分开编写。在处理字符串时,我利用 C++ 的getline函数读取整行内容,再借助istringstream创建包含该字符串的流,这样就能像使用cin一样,以空格为分隔符轻松读取字符串,极大地简化了输入指令的处理流程,最终成功且幸运地一次通过该题。


因为我注意到a的范围不同于寻常的1e9,而是1e6,于是我考虑利用公式:n等于它的所有因子的欧拉函数和,线性筛预处理欧拉函数,然后依次考虑1到1e6每个数,记当前考虑到i,将i的所有倍数在数组中出现的位置找出来,这些位置形成若干段,每段累加所有的(l<=r)l*r*欧拉函数(i)即可。


第4题的解题过程可谓一波三折。起初,我发现同一左端点下gcd相同的段数量较少,大致为loga级别,于是构思了一个较为直观的解法:枚举左端点,通过二分查找快速定位每个gcd相同段的右端点,然后累加答案。由于涉及频繁的区间gcd询问,我选用ST表来实现快速查询。这种方法的时间复杂度为n*(loga)^2*logn,其中二分查找复杂度logn,段数为loga,单次gcd查询复杂度loga,最终因复杂度较高导致超时,只拿到了 80 分。随后,我尝试改进策略,注意到本题中a的范围并非常见的 109,而是106,基于这个特点,我考虑利用公式 “n等于它所有因子的欧拉函数和”,通过线性筛法预处理欧拉函数。具体做法是,依次考虑1到 106的每个数,假设当前考虑到i,找出i的所有倍数在数组中出现的位置,这些位置会形成若干段,对每段累加所有满足 l≤r的 l×r×欧拉函数(i)。在查找倍数位置时,采用逆向思维,让每个数去找自己的因子,通过aloga的方法预处理出106范围内每个数的所有因子。然而,这种做法的复杂度为aloga+数组中所有数的因子个数之和,结果还是因为数据特性,比如被像720720这种因子个数极多的数据 “卡” 住,再次超时,依旧只得到80分,最终也没能想出倒序枚举左端点、动态维护右端点gcd 值的优化解法。


第5题是关于树上的数据结构题,由于操作3和4涉及改变树的形态,通常需要借助Link - Cut - Tree(LCT)来维护。但我对LCT掌握不够熟练,考试时又没携带算法模板,为求稳妥,我决定放弃这部分复杂操作,争取拿下前面没有操作3和4的70分。这部分采用的是重链剖分结合动态DP的做法,简单来说,就是将传统的DP转移用在max+运算下的矩阵形式表示,每个点的矩阵仅与自身和轻儿子所在链的属性相关,如此一来,在修改时不会一次性对过多矩阵产生影响(因为每个点向上跳只会成为对数级别个节点的轻儿子)。对每条重链,使用线段树维护矩阵积,每次修改时,从叶节点开始重新计算对上层节点的贡献,将矩阵积层层向上更新。最终顺利实现预期目标,幸运地一次就拿到了这70分。


图片

第37次CSP认证考试成绩部分截图



CSP备考建议


合理分配精力,灵活调整策略。CSP与XCPC的赛制不同,它的题目设置了部分分机制,因此建议优先确保基础分,既能减轻考试压力,也能为后续解题争取更从容的心态。若遇到题目反复调试无果或难以定位错误的情况,不妨暂时跳过,先尝试其他题目。特别是首次参赛的同学,可先以稳扎稳打获取保底分为主,后续再尝试更激进的策略冲击高分。


重视思考与数据预处理。部分题目涉及复杂公式推导,依赖脑力空想容易出错,这时候不妨在草稿纸上推导处理。例如,我在第 5 题的解题过程中,就是先在草稿纸上完成矩阵推导,再着手编写代码。此外,提前做好输入处理、变量映射等预处理工作,能显著提升编程效率,减少调试时间。


夯实基础,巧用纸质资料。CSP更侧重考察算法模板与数据结构的掌握程度,相比XCPC注重性质观察的特点,CSP更强调基础知识的扎实性。考试允许携带纸质资料,建议日常多整理常用算法模板,并标记容易出错的细节。携带的模板最好提前通过实战题目测试,确保使用时万无一失。


针对性突破题型。CSP的前两题通常围绕语法和基础算法展开,难度较低;第3题多为模拟题,需熟练掌握字符串读取、map、set等STL容器的使用,建议先抽象出解题模型,再逐步调试完善。第4题往往需要挖掘题目隐藏性质,通过优化算法复杂度求解,更具竞赛思维;第5题常涉及冷门数据结构,调试难度较大,建议优先争取部分分,再尝试完整解法,这些知识点可以通过CSP模拟认证网站练习。


熟悉工具与环境。CSP支持使用Dev-c和VSCode,考前应熟悉这两款工具的C工具链配置、运行调试功能,同时掌握文件读入的方法,模拟真实评测环境,避免因工具使用不熟练影响答题效率。


适应赛制训练。CSP采用IOI赛制,允许多次提交且无失败惩罚,评测结果实时反馈。建议考前针对该赛制进行模拟训练,掌握提交节奏,合理利用多次尝试机会优化代码,避免因不熟悉规则错失得分。



结语


感谢CCF举办CSP系列认证考试,让我在备赛和答题过程中清晰发现自身知识短板,及时查漏补缺。在此,我也要感谢四川大学ACM集训队和CCF四川大学学生分会,无论是日常训练的指导,还是竞赛经验的分享,都让我受益匪浅。同时,考试提供了贴近真实竞赛的编程环境,帮助我积累实战经验。对于想在算法竞赛领域深入学习的同学,我建议积极参与CSP认证及CCSP竞赛。以赛促学、以练代战,在实战中打磨编程能力、锤炼算法思维,将所学应用于计算机技术的探索与发展中。

热门动态
2022-08-18
助力制造业企业及会员单位匹配需求供给、实现资源互补,搭建专业的产需服务平台,促进制造业数字化转型和融合创新发展,首届“CCF智能制造大会” (CIMC 2022),于2022年7月16-17日在CCF业务总部&学术交流中心成功举办。
2022-08-18
7月22-23日,由CCF主办的2022 CCF未来计算机教育峰会(FCES 2022)在苏州CCF CCB(业务总部&学术交流中心)召开,全国近百所高校科研机构和企业的60多位专家学者、政府领导和多家企业代表,以及300多位现场观众齐聚苏州,共话中国计算机教育的未来。
2022-08-18
CCF发展的60年,也是伴随中国计算机事业走过的60年,庆典上的很多专家,都为中国计算机事业奉献了热血青春,当年意气风发,如今虽已满头华发,但初心未改,他们创造了CCF的光辉历史,还将继续带领CCF走向更加美好的明天。
CCF聚焦
场地预订
如何抵达
周边酒店
活动预告
返回顶部