竞赛 > CCSP > 竞赛动态
CSP高分说 | 中国农大杨维昊:在代码中书写青春的算法诗篇
2025-09-05 阅读量:0 小字

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



图片

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


一、我的算法竞赛之旅



我的算法竞赛旅程,始于初一那年。通过学校的选拔,我有幸踏入了程序设计的世界,然而由于种种原因,真正意义上开启这段征程,却是在初三。在老师的推荐下,我参加了CSP普及组与提高组的认证,并在提高组中获得了二等奖的优异成绩,随后也顺利参与了NOIP竞赛


步入高中后,我继续投身于CCF主办的NOI系列赛事中。经过两年的全力以赴与停课训练,我在NOIP春季测试中斩获一等奖,然而在重庆省选中,却因发挥不佳,遗憾错失进入省队参加NOI的机会。


尽管高中的竞赛之路并未如愿以偿,但这段经历始终如一盏明灯,照亮着我前行的方向。进入大学后,我依然热情不减,积极投身各类程序设计竞赛。在大一第一学期,我便参加了蓝桥杯校赛,以全校第一的成绩代表学校出征省赛,并最终荣获北京市一等奖。此外,尽管我校并未设立ACM相关组织,我仍主动与学长组队,积极参与各项ACM赛事,不断挑战自我。


图片

参加北京市大学生程序设计竞赛照片


与此同时,我也始终关注着CCF主办的各项赛事,很早便通过学长了解并接触了CSP认证。但由于学校每年仅组织一次CSP认证,我直到今年6月才再次踏上这一熟悉的战场。在这次认证中,我全力以赴,最终以430分的成绩位列全国前十,更是首次将本校的名字写入了排行榜的首页,倍感荣幸。

图片

CSP考试期间实时排行榜截图


二、CSP认证概述



CSP认证时长为4小时,共设5题,均为程序设计题。前三题不设子任务,只要通过测试点就能获得对应分数,最后两题设子任务,需要选手通过对应子任务下的所有测试点才能拿到该子任务的分数。


第一题一般为简单模拟题,不考察选手的算法及思维能力。选手只需要认真读题,根据要求实现即可,一般只要学会基础语法的选手都能拿下满分。


第二题一般为简单思维题,一般会涉及到简单思维能力,需要选手具备一定的思维能力和数学基础。且近几次认证该题部分分分值均较高,即使不会写正确解法的选手也能拿到较高的部分分。


第三题一般为困难模拟题,考察选手的代码实现能力。此题的特点主要是题面长,概念多,部分分多,代码实现也比前两题更长。建议选手在撰写代码前一定要仔细阅读各项概念,在理解各项概念的基础上再去实现,否则很有可能会出现理解错误导致需要大规模重新编写代码。针对备考建议,此类题目并不适合考前“临时抱佛脚”,需要选手在平时利用往年题目多训练自己的代码实现能力与题目解读能力。如果在考场上实在写不出来也不要着急,可以考虑放弃正确解法,转而通过各种手段获取部分分。


第四题一般为中档算法题,常考察动态规划及其优化、简单数据结构等知识点。从此题开始需要选手对算法有一定的了解,否则很难想出正确解法。建议没有学过算法的选手以及算法能力较弱的选手可以考虑用简单代码获取部分分,一般来说都能获取到较多的部分分。


第五题一般为难度较高的算法题,常考察图论、复杂数据结构等知识点,需要选手具备很强的思维能力以及算法能力才能想出正确解法。对于大部分选手,建议使用暴力解法获取此题的部分分,一般来说都能获取到30分。


另外CSP认证采用IOI赛制,这意味着选手可以实时提交代码并查看代码是否正确,但无法看到各测试点的数据及代码输出。选手可以凭借此赛制发挥出自己的最大水平,不会出现想到正确解法却无法拿到对应分数的情况,但请注意每道题目的上限提交次数为32次。


三、CSP备战之道



首先,CSP认证主要考察的还是选手的基础代码实现能力。即使选手不会算法,依靠时间复杂度较高的暴力做法也能拿到不错的分数。因此,建议选手在平时多加训练自己根据题意实现代码的能力,在此基础上再去学习一些基础算法。


其次,对时间的分配也是很重要的。建议没有学过算法的选手可以将大部分时间花在前三题,只花少量的时间实现最后两题的部分分;学过算法的选手可以率先实现第1、2和4题,拿到足够的分数后再去做第3和5题。切记不要在一道题上花费过多时间,以免影响整体进度。


另外,仔细观察部分分提示。一般来说部分分的设置或多或少都会对正确解法起到一定的提示性作用。如果选手对正确解法没有任何思路,不妨观察部分分如何实现,逐步构建思路。


最后,不要畏惧交题。虽然每题限制选手只能提交32次,但一般来说都是足够的。尤其在前三题上,即使代码尚未完全完善,也应果断提交,争取通过更多测试点。


四、第38次CSP认证个人经验



本次认证我采用了1-2-4-3-5的做题顺序,在开场20分钟左右就通过了前两题。第一题一开始我采用了double数据类型进行计算,但由于double的精度较低,导致了答案错误,注意到此题在做除法运算的除数为100的因数,因此可以采用int进行运算,使运算结果更加精确。第二题考察的就是简单的BFS算法,简单实现即可通过此题。


通过前两题后我就先做了第四题,第四题是一个很显然的动态规划题,但很遗憾的是,字符串的总长度达到了10的9次方,直接动态规划只能获取部分分。考虑到井号的位置只有10的6次方,因此可能需要利用井号的位置来做动态规划。事实也的确如此,通过计算两个井号之间满足特定条件的方案数,就可以利用井号的位置来做动态规划。计算满足条件的方案数可以采用矩阵乘法,即可降低单次运算的时间复杂度。写完后提交到评测系统,发现只有90分。于是我进一步优化代码,提前缓存部分结果,从而在多次重复计算中节省时间,最终通过全部测试点。


做完第四题大概还剩两个小时的时间,这个时候我先做了第三题。本次认证的第三题的题面非常长,概念和细节都非常多,因此我花了大概二十分钟的时间来理解题意及各项概念。观察部分分,发现有仅存在简单信息的部分分和仅存在复杂信息的部分分,因此我先撰写了简单信息的代码,调试完成并通过对应的部分分后,再完成了复杂信息代码的编写。花费了大概四十分钟就通过了此题。


最后来到第五题,发现是一个图论题。理解题意后先思考了一下,发现没有关于正确解法的任何思路,于是我就先写了暴力算法,拿到了最基础的15分。接着我发现部分分中存在只含有链的情况,这种情况也是比较好写的,于是我在半个小时之间拿到了第五题的30分。此时距离考试结束还剩30分钟,很遗憾在最后的30分钟内没能想到关于此题的正确解法。


图片

CSP38成绩单截图


五、写在最后



回顾这些年参加NOI系列赛事的经历,我收获的不仅是奖项与名次,更有一群志同道合的伙伴,以及对计算机科学日益浓厚的热爱。这段旅程,让我在不断试错与突破中成长,也让我更加坚定了在编程道路上继续前行的决心。


感谢CCF给予我这次机会,分享我的算法竞赛之旅与CSP认证的心得体会。希望我的经验能够为后来者提供些许启发。愿CSP认证与NOI系列赛事越办越好,愿每一位热爱编程的选手都能在赛场上挥洒青春收获梦想的成绩。

热门动态
2022-08-18
助力制造业企业及会员单位匹配需求供给、实现资源互补,搭建专业的产需服务平台,促进制造业数字化转型和融合创新发展,首届“CCF智能制造大会” (CIMC 2022),于2022年7月16-17日在CCF业务总部&学术交流中心成功举办。
2022-08-18
7月22-23日,由CCF主办的2022 CCF未来计算机教育峰会(FCES 2022)在苏州CCF CCB(业务总部&学术交流中心)召开,全国近百所高校科研机构和企业的60多位专家学者、政府领导和多家企业代表,以及300多位现场观众齐聚苏州,共话中国计算机教育的未来。
2022-08-18
CCF发展的60年,也是伴随中国计算机事业走过的60年,庆典上的很多专家,都为中国计算机事业奉献了热血青春,当年意气风发,如今虽已满头华发,但初心未改,他们创造了CCF的光辉历史,还将继续带领CCF走向更加美好的明天。
CCF聚焦
场地预订
如何抵达
周边酒店
活动预告
返回顶部