北京邮电大学谭怡萱在第34次CSP认证考试中获得满分,第35次CSP认证考试将于9月22日举办,报名正在进行中。每年CSP高分考生(200分及以上)均可报名参加CCSP竞赛,CCF不定期邀请CSP高分和CCSP获奖选手分享经验,希望能够帮助同学们取得更大的进步。
非常欢迎更多CSP优秀学子分享自己的宝贵经验,联系:csp@ccf.org.cn
CCF与我的算法竞赛经历
在升初二的那个暑假,我机缘巧合接触到了信息学竞赛,此后我的中学生涯便和算法相伴了很长一段时间。期间有学到新知的喜悦、通过难题的激动、也有竞争下的压力和焦虑。但有着教练的鼓励和同学们的互帮互助,这些经历还是让人受益匪浅。直到NOI 2022,在波折中取得了银牌,算是暂时告别了算法竞赛。
NOI2022比赛现场
不过其实在高三的那段时间,算法竞赛也没有完全退出我的生活,每个周末都可以看到朋友们在群聊中讨论Universal Cup的题目。而在高三毕业的暑假,我很快就开始主动或者被动地重拾算法竞赛。
在高考后的暑假给即将升入高中的学弟学妹讲课是我校的传统。在备课和讲课的过程中,关于那些曾经烂熟于心的算法知识的记忆,又重新激活。而看着学弟学妹们全神贯注地听课,冥思苦想地思考题目,偶尔还会拿出自己出的题一起讨论,我仿佛又回到了自己充满活力的曾经。
因为大学依然计划继续参与算法竞赛,暑假里,在高中的讲课告一段落之后,我便前往北京邮电大学跟随学长学姐们一起参与暑假集训。长时间的疏于练习,同时对于ICPC出题风格的不适应,在大部分的时间里,我的成绩并不是很好。不过偶尔也能意外通过一些较难的题目,取得较好的排名。在为期大约二十天的集训中,可以感觉到自己的状态有一定恢复。
谭怡萱参加CCPC北京市赛现场
在大一上,我参加了ICPC沈阳站和合肥站、CCPC女生赛和北京市赛。ICPC的两个赛站,受到比赛策略、心态以及和队友的配合等多方面的影响,都只取得了铜奖。而女生赛则是凭借罚时的略微优势险获金奖。大一下参加的比赛类别相对丰富,有CCPC Final、团体程序设计天梯赛、蓝桥杯C/C++A组和第34次CSP认证。其中后两者的时间是同一个周末的周六和周日,而最后一等奖第一名和500分的结果都很令我意外。
谭怡萱参加蓝桥杯获得一等奖第一名
总而言之,大一这一年的竞赛经历对我而言是极为宝贵且充满挑战的。这些经验促使我反思并努力提升自我,为未来的比赛打下坚实基础。无论是遗憾还是惊喜,都将成为人生旅途中宝贵的财富,激励我在未来的道路上继续前行,在算法竞赛上追求更好的成绩,相信努力与坚持将有所收获。
我的CSP经历
目前我仅参加过第34次CSP认证,取得了500分。前两个简单题我较快地通过了。第三题是一个题目较长的模拟题,于是我选择先阅读后面的题目,发现第四题是一个十分套路的分组背包DP,便迅速地将其完成。第五题看起来偏向数据结构,于是我回头去写第三题。经过对时间复杂度的粗略计算,我意识到第三题如果实现方式不够优秀,将很容易TLE(英文全称Time Limit Exceeded,即时间超限),于是我尝试较为细致地实现,花费了较长的时间。结果不幸MLE(英文全称Memory Limit Exceeded,即超出内存使用限制),修改之后还是部分TLE,只有80分。这时候我决定先去实现第五题的部分分,但一个并非正解的做法直接获得了第五题的满分。惊讶之余,我迅速将剩余的时间投入到了第三题的修改中,在想出了一种时间复杂度更优的枚举方式后,我终于成功通过了第三题,最终获得了满分。
谭怡萱第34次CSP认证成绩单截图
CSP备考建议与考试策略
一般来说,前两题的思维难度和实现难度都不大,能掌握一种编程语言的基本语法和常用库函数,以及基本的输入输出、条件判断、循环控制等编程结构,只要能正确理解题意,基本上都能顺利通过。
第三题通常是一个较为复杂的模拟题,其代码量较大,难度也主要集中在代码实现上。完成这道题需要选手理解题目的所有需求,最好有一定的结构化思想,在写代码前将需求梳理成若干步骤,依次实现,以降低代码难度。如果是使用C++语言的选手,能够熟悉STL的功能和语法,也可能有一定的帮助。如果对自己的代码能力不是很有信心,必要时可以以时间复杂度换实现难度,至少保证一定的分数。
最后两题的难度大部分时候比较大,偶尔也可能会出现第四题仅考察了一个较为简单的算法的情况。一般来说题目风格偏向于OI/ICPC,在思维能力和代码能力上都对选手有较高的要求。两道题目总体来说一般不会涉及特别偏或者难的知识点,可能会是动态规划、数据结构、图论等中较为常见的知识点,但需要能够较为熟练的运用。所以至少首先需要对一些较为基础和常见的算法有所了解,这样即使不能想出正解,在试图思考能够通过部分分的做法时,也能提供帮助。
CSP认证的赛制相对于OI赛制和ICPC赛制都有区别。选手可以实时获得所提交的代码的反馈结果,每道题目有部分分,提交不记罚时。这样的赛制利于选手在比赛过程中大胆尝试,比如猜结论,或是在最优化的题目中使用贪心,甚至包括实现一些复杂度较高的算法然后尝试进行常数优化。
除此之外,实战是最好的进步方式。可以关注CCF CSP认证官网的模拟认证开启时间,通过尝试去做往年题,来练习实现代码的能力,在思考题目中提升思维能力,同时也可以对所学算法的缺漏进行补充,以及检验自身的考试策略是否需要调整。
结语
很荣幸CCF给我这个分享的机会,祝愿CCF的各类比赛越办越好。也希望我的分享可以给大家带来一点帮助,祝愿大家能够在CSP认证中取得理想的成绩。