CSP高分说 | 北京建筑大学朱智睿:CCF算法竞赛伴我度过中学与大学

360影视 欧美动漫 2025-09-10 09:22 1

摘要:北京建筑大学朱智睿在第38次CSP认证考试中获得430分,第39次CSP认证考试将于9月21日举办,报名正在进行中。每年CSP高分考生(200分及以上)均可报名参加CCSP竞赛,CCF不定期邀请CSP高分和CCSP获奖选手分享经验,希望能够帮助同学们取得更大的

北京建筑大学朱智睿在第38次CSP认证考试中获得430分,第39次CSP认证考试将于9月21日举办,报名正在进行中。每年CSP高分考生(200分及以上)均可报名参加CCSP竞赛,CCF不定期邀请CSP高分和CCSP获奖选手分享经验,希望能够帮助同学们取得更大的进步。

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

从意外到热爱:我与算法竞赛的初识与深耕

回想起第一次接触算法竞赛,时间回到初中一年级。那时,对机器人充满憧憬的我得知机器人校队正在招新,毫无犹豫地报了名。意外的是,老师们选拔队员的依据竟然是NOIP普及组初赛的成绩。

由于对编程毫无概念,我人生中的第一个程序竟然是在草稿纸上一笔一划写下的“Hello World”,而我在纸上写过的最复杂的程序,也不过是计算水仙花数。因此,NOIP2018普及组的题目对当时的我来说都是天书一般难以理解。

幸运的是,凭借初赛成绩,我侥幸进入了机器人校队,并意外地晋级了 NOIP2018普及组复赛。然而,一位资深教练却建议我不要参加复赛。虽然感到迷茫且不甘,但我还是照做了。看到当年的真题后,我意识到他保护了我的自尊心,而他正是陪伴我走过五年OI生涯的陈福宝老师。

接下来的数年里,在陈老师耐心且系统的指导下,我接触了多本算法书籍,同时在国内外各大OJ刷相关习题,NOI大纲上的完成标记也越来越多,并顺利地集齐了三色CCF NOI级别赛事的奖牌:NOI2021 D类铜牌、NOIWC2022金牌,以及APIO2022银牌。

大学阶段,凭借着中学时代的基础与积累,我再度集齐了三色奖牌:2023年ICPC南京、杭州区域赛金牌,2023年EC-Final银牌,2024年南京区域赛铜牌。同时也幸运地获得了某知名大模型公司的实习机会。

本以为自己与CCF的缘分到此便告一段落,但数位圈内知名选手优异的 CCSP成绩又引起了我的注意。在了解CCSP的相关信息后,我意识到这次CSP认证正是一次检验并提升自身能力的好机会。

于是,我与CCF的故事,在报名参加第37次CSP认证的那一刻,进入了全新的篇章。

第37次CSP认证:一次检验,更是一种追忆

本次认证中,第一题是简单的阅读题,读错题的我却浪费了半个小时才理解正确的题意。幸好第二题考察的是简单的BFS,我仅用五分钟便顺利通过该题。

第三题题面长达数页,因此我选择先做第四题。最初,我试图分别计算“ccf”和“cspark”两个子串的答案,但却一直找不到突破口。冷静思考后,我突然想到OI时代常用的“正难则反”的思想,将这两个子串拼接成一个带通配符的字符串“ccf*cspark”,从而将原问题转化为矩阵快速幂。几轮debug后,第四题终于顺利通过。

重新回到第三题,题面确实过于冗长,但好在并不晦涩难懂。不擅长这类题的我甚至难以把握完整题意,拯救我的是足够强的样例,靠着手动完成样例的计算,我才得以窥探到题意的全貌。在“写代码—测样例—找错误”的循环往复中,我不断往代码打补丁,最终得到的代码也是不出意料的可读性极低。我本来想着先交一发看看错在哪,也做好了艰难地 debug的准备,但是这份代码直接通过了本题。

没有时间为一发入魂的第四题庆祝,此时距离比赛结束仅剩25分钟,虽然我很快发现了第五题是广义圆方树结合虚树DP的经典套路,但由于没带纸质模板,而且感觉时间所剩无几,因此我仅拿下30的部分分便选择提前离场。

总体来说,这场考试不仅考察了基本的阅读理解与基础算法知识,还有从字符串匹配逆向思维转化为线性代数的巧妙思维题,以及对高级图论数据结构的经典套路的测试。对我而言,这次考试考察范围广,区分度良好,不仅暴露了我自身的不足,更让我仿佛回到了曾经纯粹热爱算法竞赛的中学时代,抛却功利目标后的纯粹与感动在我的脑海中重现。

第39次CSP认证成绩单截图

CSP备考:老生常谈外的独特心得

刷题、调整心态和规划策略等必要的心得已有很多大佬分享,我在此更想强调一些容易忽视的细节。

大家刷Codeforces、AtCoder这些好题云集的OJ固然有训练意义,但其实常常被大家忽视的LeetCode中也有可以学到的东西。对于入门选手,建议直接从LeetCode开始刷题。对于高水平选手,LeetCode的题目简单是事实,不妨来参加力扣周赛,虽然AK对大家来说并非难事,但前排往往是CF橙红名的聚集地,有时甚至会随机刷新黑红名选手,想要取得高名次并不容易。我认为力扣周赛可以锻炼手速和心态,例如本次比赛的前三题,在读懂题意后,我都是迅速地仅用一发提交通过了本题,省下来的debug时间和罚时(虽然CSP并没有)可以减缓做后期题时的压力。

对于纸质模板,虽然GitHub上已经有众多强队分享了自己的模板,其中不乏覆盖范围广、可读性高、易扩展的优质模板,但出题人往往并不会只考一个裸题,而是会考多个算法的结合应用或特殊变体,因此建议大家根据自身需求定制一份独一无二的纸质模板,不是简单地罗列模板代码,而是要理解其内在逻辑,便于考场上的快速修改和扩展。

此外,有一条我一直遵守的原则,可能不具有普适性:避免长时间空坐思考,要以适当频率补充代码。例如,一道题必然有输入和输出,有些选手可能还有自己的缺省源,这些东西终归是要写的,不妨先写完再去思考正解,这样做可以很大程度上避免想到“假做法”,而又因浪费了过多时间没拿到应得的部分分。或者一道题大概率要用某个算法,也可以提前从纸质模板上抄下来,实际上用不了多少时间,而且可能别的题也会用到该算法。

最后,由于CSP是IOI赛制,善于利用该机制试错,可以变相减少debug时间。

写在最后

在多年的算法竞赛生涯中,我收获了很多,成长了很多,也清醒地认识到自己能力上的不足。我始终认为,这场长跑没有明确的终点,每一次参赛和训练都是一种自我对话和挑战。希望每个人都能找到适合自己的节奏,享受这个过程,而不仅仅追逐结果。

来源:CCFvoice

相关推荐