返回首页
您的位置:首页 > 新闻 > CCF聚焦

CSP高分说 | 华中科大汪文卓:我的算竞之径与CSP备考建议

阅读量:146 2024-03-22 收藏本文

华中科技大学汪文卓在第32次CSP认证考试中获得475分,第33次CSP认证考试将于3月31日举办,报名将于本周日截止。每年CSP高分考生(200分及以上)均可报名参加CCSP竞赛,CCF不定期邀请CSP高分和CCSP获奖选手分享经验,希望能够帮助同学们取得更大的进步。



图片

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



CCF见证我的算竞历程


相比于大多数参与过OI的选手,我接触到算法竞赛并没有那么早,我高一在学校听过各大竞赛老师的宣讲,对没什么成绩也不出名的信息学竞赛起了兴趣,在弱校一开始当做兴趣爱好一样学习,逐渐感受到算法的美,也逐渐因为热爱决定走这条路,成为一名“职业”算竞选手。不过一开始参赛成绩并没有那么亮眼,我在2019年的CSP-S取得的成绩非常差,也感觉到了我和不少选手的天赋差距,但是我也有不服气的心气,经过一年的学习蜕变,我在第二年的CSP-S取得了全省第10名的成绩,在NOIP中取得一等奖,但是NOIP成绩没有那么如意,家长反对我在这条路上继续走下去,在我和尊重我意愿的老师们的尽力坚持下我走到了省选,并且依靠省队选拔的成绩翻盘进入省代表队,在NOI中较为遗憾的拿到了铜牌。虽然只有短短不到2年的时间,但是算竞在我心中已经深深扎下了根,未来一定要学习计算机相关的专业,也一定会继续参加算法竞赛。


高考后我来到了华中科技大学,继续我的算法竞赛道路,在新的环境与赛制中很快遇到了自己的瓶颈,大一一年的国家级比赛都是银奖/二等奖,CSP认证的成绩也很一般,一度让我觉得我自己“退化”了,但是仍然,因为不服气的性子,也因为我在第30次CSP认证中取得的较高排名,经过暑期多校的训练与积累,我重新满怀期待的回到赛场,在新赛季和志同道合的队友一同取得了两个ICPC金奖,参加了CCSP竞赛获得了银奖,也在第32次CSP认证中取得了475分的好成绩。我想我还未到达我的极限,我和算竞的历程还未结束,不服气的我还会尝试更进一步。

 

图片

汪文卓高中时期的证书


图片

 汪文卓参加ICPC亚洲区决赛合影(左一)



如何备考CSP


一次CSP认证有4个小时,我们要解决5道题目。写过一些难题之后的感受其实很明显,一道难题通常要耗费我们至少40分钟时间,而5题4小时的配比意味着,如果我们要拿到近乎满分的分数,就需要非常快速地解决难题之外的题目。


图片

华中科技大学2023CCSP竞赛参赛合影(第一排右三为汪文卓)


CSP中的第一二题通常较为简单,第一题一般是模拟题,学过程序设计课程的同学基本上都可以较好完成,第二题通常需要一点点算法或者数学的基础,同样较为简单。


分数的分水岭通常出现在第三题,第三题一般是结合一些实际的工程或者研究问题而出,一般题面非常长,而且代码实现上细节非常多,十分考察选手的程序设计能力,这题通常会区分出代码能力强弱,建议仔细读完题面,然后在草稿纸上设计自己程序的步骤和框架,最后一步步对应实现。一定不要着急慌忙地写代码,很容易造成细节遗漏,然后在有问题的代码上修修补补很容易产生更多问题,也会让代码可读性降低。这题之所以重要也是因为可能会花费大量时间在调试上,导致后面的题目时间不足,所以这题也是讲究准和狠的一题,可以多想想,但是写的时候要迅速精确的结束战斗。


第四题和第五题是比较面向“职业选手”的题目,考察的知识点通常会有高级数据结构、图论算法、较复杂的动态规划等等,这两题思维难度和知识点通常会明显大于前三题,想拿到这两题中的满分平时就需要积累很多的算法数据结构知识,并且要经常解决一些这样的题目,比赛的时候才能分析并且实现出代码。如果只是针对CSP本身,对于这两题可以直接尝试解决尽量多的部分分,这就主要依赖选手的基本功了,一些正解用到高级算法的题目可以用DP等做法获得部分分,读懂题目,对于后两题可以拿一到两档的部分分。


CSP认证采用的是IOI赛制,我们可以多次提交,这就鼓励了选手大胆尝试,努力冲击高分,比赛的时候也要善用这一赛制来为自己服务,比如利用assert提交来查错都是可以的,对于可能的猜想,也是可以通过提交来尝试的。给予时间,基本上选手都是可以发挥出自己的最好状态。

 

图片

汪文卓在赛场编写代码(右一)



第32次CSP认证回看


第32次CSP认证中,我大概用20分钟通过了前两题,第一题直接按照题意模拟三维偏序即可,第二题需要知道质因子只有至多一个大于根号,所以预处理10^5 范围内质数进行质因子分解即可。第三题写了一个给树节点打删除标记的模拟,比较快速的解决掉了,最后大概有接近3个小时来处理最后两题。第四题读完之后思考了大概20分钟没有想到满分做法,于是转去看第五题,思考过后发现有L小于等于9的限制,去掉起终点后只会有7个节点,我算了一下觉得方案数并没有那么多,而且可以双向BFS来进一步缩减状态,于是就写了一个搜索计算状态,不断做小优化,最终在一个小时之后通过了这道题,当时还是比较激动的,但是转头依然进一步思考第四题的满分做法,依然在没有得到确定结果之后决定写部分分,充分利用IOI赛制,每写一档部分分就提交测试一下,最终拿到了75分的第五档部分分,总分来到了475分。

图片

汪文卓CSP成绩截图


总结这次CSP,优势在于很快解决了第三题,不断优化通过第五题,第四题虽然没能获得满分,但是也拿到了较高的部分分。速度与思维缺一不可,我想这也是算法竞赛吸引人的地方,总有更高的智慧和表现,同时也伴随着遗憾,永远期待下一个闪光。



尾声


我从算法竞赛的初学者,到四处参赛的选手,到比赛志愿者、组织方,体验了很多个视角,看到了这个赛场的许多风景,热爱也让我坚定了计算机相关的学习方向,这片赛场无疑是我和很多选手一同热爱着的,也无疑是将会继续发扬的。

 

图片

华为算法大赛参赛队照(中间为汪文卓)


感谢CCF给我这次分享的机会,我未来还会继续在这条路上继续努力,也祝愿广大算竞选手取得自己想要的成绩。检验自己的算法水平,CSP当然是一个很好的比赛机会,比赛本身乃至题库都是值得看看的,全国的CCSP竞赛更是体验不一样题目的精彩舞台,祝愿CSP和CCSP越办越好,能吸引更多同学接触算法,体会算法之美,同时也为中国计算机教育的发展注入动力。