CSP满分说 | 天津大学黄敏行:我的算法之路与CSP备考经验
天津大学黄敏行在第33次CSP认证考试中获得满分,第34次CSP认证考试将于6月2日举办,报名正在进行中。每年CSP高分考生(200分及以上)均可报名参加CCSP竞赛,CCF不定期邀请CSP高分和CCSP获奖选手分享经验,希望能够帮助同学们取得更大的进步。
非常欢迎更多CSP优秀学子分享自己的宝贵经验,联系:csp@ccf.org.cn
算法之路
虽然我从初高中就开始接触计算机编程,但是受到文化课以及其他学科竞赛的影响,我并没有投入时间在信息学竞赛上。我的算法水平仅仅停留在“会写一个不报错的代码”的水平。真正开启我的算法竞赛之路是在大一下进入校ACM队时。在学校的ACM队中,我找到了两个志同道合的小伙伴。我们从最基础的算法学起,不断训练经过了约4个月的学习,我们取得了一个银奖和一个铜奖。在接下来的一年中,我们持续进行训练,参加了学校ACM队伍日常周末训练,暑期多校赛等,连竞赛组的椅子都被我坐坏了两把。最终我们在2023赛季取得了ICPC沈阳站的银牌和CCPC秦皇岛站的银牌。在今年3月,我报名参加了CCF CSP认证,有幸取得了满分。
CCPC秦皇岛赛站,中间为黄敏行
第33次CCF CSP认证经历
在第33次CCF CSP认证中,第一题和第二题相对简单,可以按照题意直接模拟通过。第三题涉及高斯消元,题目提供了详细的步骤,直接模拟高斯消元即可。第四题的做法较为开放,可以选择链表模拟或者二分查找。由于我对链表比较熟悉,所以直接模拟了链表。本次认证的前四题都比较简单,但第五题需要进行些许推敲。通过观察,我发现题目中的两种操作可以离线分别进行求解。我分别采用了树上启发式合并和树状数组维护时间对树进行遍历对题目进行了求解。
黄敏行CSP33成绩单截图
备考建议
CCF CSP允许携带纸质材料,我建议选手们准备一些纸质材料(最好是自己写的程序)。在本次认证中,如果携带了高斯消元的模板,则可以快速解决第三题。
与ACM和OI赛制不同,CCF CSP认证的赛制允许查看每个数据点上的结果是否正确,还包含特殊数据点。在解答第五题时,我曾不小心写错了树状数组,但通过观察到几个特例数据点的正确性后,我迅速发现了问题并纠正了代码。
CCF CSP认证的每道题目的考察方向是大致固定的。前两道题通常考察选手的基础代码能力和基础算法知识,第三题通常要求选手模拟题目,更偏向大模拟。第四、五道题则考察选手的思维能力和对算法的理解。因此,想要在CCF CSP认证中及格(300分)的同学可以多练习各个算法竞赛网站上的基础题,熟练掌握基础算法和数据结构。同时,多加练习模拟类型的题目,争取在比赛中完成第三题。
备考的选手需要注意,CCF CSP认证和算法竞赛不适合“赶进度”。算法学得杂而不精往往会适得其反。我认为,选手们应该对算法有自己的理解,真正理解算法的精髓,才能在CCF CSP认证和其他算法竞赛中取得好成绩。
大学中的程序设计竞赛并非只是高中OIer的舞台,没有接触过算法竞赛的同学也可以通过一年多的训练取得好成绩。预祝选手们能在未来的CCF CSP认证和其他算法竞赛中取得好成绩!