摘要:南开大学郭军凯在第36次CSP认证考试中获得满分,第37次CSP认证考试将于3月30日举办,报名正在进行中。每年CSP高分考生(200分及以上)均可报名参加CCSP竞赛,CCF不定期邀请CSP高分和CCSP获奖选手分享经验,希望能够帮助同学们取得更大的进步。
南开大学郭军凯在第36次CSP认证考试中获得满分,第37次CSP认证考试将于3月30日举办,报名正在进行中。每年CSP高分考生(200分及以上)均可报名参加CCSP竞赛,CCF不定期邀请CSP高分和CCSP获奖选手分享经验,希望能够帮助同学们取得更大的进步。
非常欢迎更多CSP优秀学子分享自己的宝贵经验,联系:csp@ccf.org.cn
我的算法竞赛之路
我从高一开始接触算法竞赛,在此之前几乎完全不了解算法竞赛,甚至选择该竞赛的原因也是该竞赛教练员宣讲水平较高。后来才了解到,高一并不是接触竞赛的好时机,已经相对有些晚了,不过幸运的是,我成功进入河北省省队,并且最终获得NOI银牌。这可以说是我与CCF的“相识”。
中学获奖证书
后来,我考入南开大学,继续我的竞赛生涯,凭借高中积累的编程技巧、算法知识和解题经验,我在大一带队获得了两块ICPC区域赛银牌和一块EC-final金牌。并且,我一直在学习专业课之余训练自己的算法能力,后来又陆续获得了一些奖牌。截至目前,总共获得ICPC四金四银和CCPC一金一银。
参加比赛合影
而且,我在修读大学时了解到了CSP认证是一个试题优秀、含金量高的认证,于是又参与了两次CSP认证,并且获得了不错的成绩。
CSP认证成绩单截图
高中时,算法竞赛的试题就让我养成了严谨的思维方式与良好的编程习惯,这让我的专业课学习更加顺利。同时,比赛模式也让我学会了如何高度集中注意力、克服考场或赛场焦虑,这种软技能也让我受益良多。因此,我十分感谢CCF以及CCF举办的各种高质量竞赛。
CSP试题分析
一般来说,CSP认证由5道试题构成,每题100分,有部分分,可以实时查看自己的得分并修改代码,但是每题限制提交次数,试题风格具有一定规律性。该试题与专业课遇到的编程任务最大的不同在于:数据规范性与严谨性很高,一般来说,不会出现题面限制之外的数据,但是限制之内的全部情况都需要考虑。
T1一般为非常简单的编程任务,不涉及算法或者公式推导,代码量较小。对于该题而言,了解基本的编程方法即可通过。
T2也是比较简单的编程任务,但是可能涉及少量的算法与推导,代码量较小。虽然该问题往往涉及到算法知识或者简单的推导,但是没有了解过相关的算法知识,也能根据生活经验、其他学科的解题思路等自行设计算法。即使无法完成算法设计,也可以尝试获得部分分。
T3一般是一道模拟题,该题一般比较复杂,需要模拟一些真实存在的程序或事物的运转,比如,某次T3要求模拟组相联cache的运转模式。该题往往涉及一些计算机基础知识和专业课知识,但是都会在题面中说清楚。
T4/T5就需要有一定的算法功底了,如果完全没有接触过算法,这两题可以尝试写一些复杂度无法通过全部数据的算法获得部分分。如果想要通过这两题,就需要平时积累一定的知识与解题经验了,需要长时间的练习。同时,就我的感受而言,T4偏向于算法,T5偏向于数据结构。
备考建议
按照时间顺序,我将备考分为了四个阶段:算法学习阶段、练习阶段、考前阶段和考试阶段。接下来我分别谈一谈这四个阶段的备考建议。这些建议大部分是我自己的备考方式总结,很可能不适合所有认证者,因此仅供参考。
首先是学习阶段,我的主要学习方式就是看博客加写“板子题”。一般来说,大部分CSP认证涉及到的算法都有大量讲解资料,OI-wiki网站中系统地整理了算法竞赛/认证中常用的技巧、数据结构与算法,可以满足大部分学习需求。如果想要更加细节深入的了解某一算法或数据结构,可以查看完OI-wiki讲解后再搜索阅读几篇相关博客,理解主要思想。理解某一算法后,为了检验自己的理解情况,一般会完成一两道“板子题”或者相关题目,所谓“板子题”,就是一些使用该算法的经典题目(母题)。
接下来是练习阶段,我的主要练习方式就是参加公开赛、复现赛或者做比赛中的习题。codeforces和atcoder两个网站是国内外认可度比较高的两个网站,均不收取费用,赛题质量很高,分数认定机制合理,同时可以与各国“大佬”同台竞技。除此之外,洛谷、牛客竞赛也可以作为题目练习的选择。
至于考前阶段,我的个人习惯为在考试前几天练习一套CSP认证真题,而且,一般来说,我不会去做第五题,这是因为我认为第五题需要一些灵感与巧思,完成第五题对考试手感与熟练度的影响不大。我会以最快速度完成前四题,以此保证考试时有一定的编程手感,减少编写代码与调试代码的时间。
参加模拟认证截图
最后就是考试阶段,考试阶段我一般是按照顺序读题的,除了某题卡住的情况,我也会按照顺序完成题目。除了第三题,我一般不会利用太多面向对象的编程技巧,而是直接以最快的速度完成试题。
结语
感谢CCF给我这次经验分享的机会。CSP认证试题的质量高、难度梯度设置合理,是锻炼编程能力、算法能力的好机会,祝愿CSP认证越办越好,帮助更多大学生提升编程能力。
来源:CCFvoice