CSP满分说 | 西安交大王禹皓:我的竞赛经历与CSP备考经验

学术   2024-11-13 17:04   北京  



西安交通大学王禹皓在第35次CSP认证考试中获得满分,第36次CSP认证考试将于12月8日举办,报名正在进行中。每年CSP高分考生(200分及以上)均可报名参加CCSP竞赛,CCF不定期邀请CSP高分和CCSP获奖选手分享经验,希望能够帮助同学们取得更大的进步。



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



一、竞赛经历


初一时,学校第二课堂C++课程的开设,开始了我的算法竞赛之路。通过系统的学习,我掌握了C++的基本语法,包括变量、分支、循环、递归、指针、结构体等基础知识。


初一暑假时,我被学校推荐到南开中学滕伟老师进行算法学习。初步学习时,由于直接从深搜和广搜开始,在没有算法基础的前提下,完全学不明白;在滕老师和学长们的耐心指导和帮助下,尝试了一段时间后便慢慢地理解并跟上团队步伐了。随后又学习了动态规划、图论、数据结构等基本及进阶算法。在这学习的过程中,我还有幸结识了多位优秀学长,如任世鑫、李堂辉、李国鸿(第33次CSP满分选手)等。在与他们的学习交流中,我受益颇多。


中学参赛获奖记录


2021年,我前往浙江余姚参加NOI,获得了铜牌分数线以上的成绩(当时我是初三,非正式参赛选手)。随后,在西交大少年班预科的一年里,在滕老师的教导下,我进一步学习高级算法,如数论、群论、多项式等内容。后来,进入大学,顺利地成为校队队员,开始了ACM之路。


NOI2021参赛现场


在近两年里,我多次代表学校参加各类计算机类比赛,分别取得一些成绩,尤其是这次CSP的满分成绩,让我对未来的算法竞赛有了更多的信心,希望自己在今后的算法比赛中取得更优异的成绩。



参加比赛时与队友的合照



二、第35次CSP认证及CSP备考经验


这次的CSP认证,第一题是判断满足要求的字符串,第二题是倍增。第三题是模拟patch,就跳过了。第四题是最短路,优化一下建图方法就可以。第五题是第二问用平衡树模拟,然后用set启发式合并往回求解。最后和第三题搏斗,交了28次才通过。


CSP成绩单截图



CSP的备考经验

首先是需要掌握基础及进阶算法(和我一同参加这次CSP的学长,最后一题思路对了,但是平衡树写挂了,痛失满分)。第一题一般考察的是基础程序,第二题则是基础算法。我当年学习时使用的是《C++一本通》和《算法竞赛进阶指南》,分别讲解了C++基本语法及基础算法(排序、贪心、分治、搜索等)、C++进阶算法(包括高级数据结构、树论、图论、高级动态规划、离线算法等)。


其次是学习一些经典的优化。例如第四、五题:一方面建图时可以把点和基站连边而不是把点和点连边,这样可以使得复杂度下降;另一方面是第五题需要离线,倒序求解第一问。这一部分很大程度上是通过刷题得到的经验,需要最充分利用洛谷、codeforces、atcoder等优秀网站资源,不断提升自己的算法能力。codeforces的比赛一般在晚上十点半左右持续两个小时,新人可以尝试Div3~4的比赛,之后可以开始尝试Div2甚至Div1。Atcoder则是在周末的晚八点进行,推荐参加名为ABC的比赛,对提升思维能力有很高的提升。洛谷则更面向于中国的OI选手,基本就是板子题以及省选等。总之多刷题,将会有很大帮助。


然后是考场上心态要一定要稳定(指我的第三题28次提交才通过)。第三题的大模拟主要就是细心、细心和细心,但也最容易写挂。所以有一个良好的心态是十分重要的。同时也需要充分利用OI赛制的部分分,例如第五题不会写,但是可以写个35分的部分分。就像滕老师经常说的那句话:“如果你在赛场上写出了所有题的暴力,你的分数可能比只写了两题满分的人要高;如果你写出了别人没写出来的暴力,你也会用暴力的部分分战胜别人。”


最后对于算法的学习,我想用滕老师的话来总结:“(把算法的流程)记下来”“(把代码)打熟”“不要背程序(而是要理解)”。



三、结语


非常感谢CCF给予我这次与大家分享经验的机会。希望CSP越办越好,也希望更多的朋友认识CSP,加入CCF大家庭,在未来的编程之路,取得更优异的成绩。





点击“阅读原文”即可报名。

中国计算机学会
中国计算机学会官方订阅号,为CCF会员及计算领域的专业人士服务。
 最新文章