武汉大学刘锡锐在第32次CSP认证考试中获得405分,第33次CSP认证考试将于3月31日举办。每年CSP高分考生(200分及以上)均可报名参加CCSP竞赛,CCF不定期邀请CSP高分和CCSP获奖选手分享经验,希望能够帮助同学们取得更大的进步。
非常欢迎更多CSP优秀学子分享自己的宝贵经验,联系:csp@ccf.org.cn
我与算法竞赛
在中考之前,我第一次接触到了信息学奥赛,并在高中教练曹全利老师的指导下学习了信息学奥赛的基础知识;升入莱芜一中之后,我开始相对系统地学习信息学奥赛,在高中期间投入了许多精力,最终的结果虽稍有遗憾,但培养了我的兴趣,也为之后的专业选择定下了方向。
升入大学后,我参加了ICPC,重拾并学习了一些新的算法竞赛知识,最后的结果也在一定程度上弥补了高中的遗憾。以此为契机,我了解到了CSP,并参与了多次CSP认证。
参加算法竞赛对我而言并非功利地强求结果,而更多地是为了兴趣,体验训练和比赛,体会各种算法和数据结构的精妙,为解决难题而思考的过程,通过题目时的喜悦,以及与队友的热切讨论和紧密合作……
2023 ICPC济南站赛后与队友合影
CSP认证的特点
与高中的信息学奥赛和ICPC都不同的是,CSP采用IOI赛制,意味着可以重复提交且没有惩罚,比赛中可以利用这一点,重复提交来验证代码的正确性。同时,部分分也是很重要的一环,如果想不出某一题的最优解法,一定要争取获得尽量多的部分分。作为个人赛事,CSP比较看重参赛者的个人能力,尤其是代码能力。
CSP的题型相对固定,五道题中,前两道题一般比较简单,一般会涉及一些基础算法或简单数据结构,也可能会用到一些常见的编程技巧。
第三题一般是一道细节较多的模拟题,也是比较容易拉开分差的一道题,需要选手模拟实现一些相对复杂的功能,比较考验编码和调试能力。在实现这一题时,一定要先通读题面,明确题目要求,并对实现过程中的每个细节都预先思考,思考之后再动手写代码,以免浪费过多的时间进行调试。
第四题和第五题一般需要相对复杂的算法来解决,如高级数据结构、动态规划、图论等,实现起来也有一些困难,因此对于算法竞赛经验不多的选手来说很可能写不出正解,这时就应该考虑部分分,多打暴力,毕竟CSP多次提交没有惩罚。如果想出了正解,也应该仔细思考之后再写代码,且在此之前最好先写好暴力,以免思路或实现出错导致部分分都拿不到。
训练和备考建议
一定的做题量是十分必要的,并且做的每道题都要有自己的思考,做完题最好要有所收获。CSP不仅考察算法和思维能力,也对代码实现能力有一定的要求,因此平常多写代码保持手感也很重要。
平常训练的时候,最好选择有部分分的题目进行训练,如果一时想不到正解也不要直接看题解,可以尝试根据部分分,一步步推导出正解。由于CSP的题型相对固定,历年CSP真题的参考价值也较高,做几套真题就能大致感受到每一道题应该用什么策略去应对。
CSP使用的是Ubuntu系统,与平常使用较多的Windows有一定区别,因此平常最好能够熟悉Linux系统的环境。在赛场上一定要保持平稳的心态。CSP的题目虽然实现起来细节较多,但其赛制有着较高的容错率,因此一定要静下心来仔细思考,即使提交代码没有获得预期的结果也没有实际影响,不要因此影响了自己的心态。
结语
就我参加的几次CSP而言,CSP系列赛事能够明显地体现个人思维和编程能力,同时也有着很好的题目质量和参赛体验。感谢CCF能给我这样一个机会来分享我的参赛经验,也希望CSP能够继续发扬优点,越办越好,选拔出更多的优秀人才,为我国计算机事业的发展作出贡献。