188体育app官网_188体育投注

返回首页
您的位置:首页 > 新闻 > 188体育app官网:

CSP高分说 | 武汉大学黄祯:算法之路有CCF相伴

阅读量:14 2025-05-23 收藏本文

武汉大学黄祯在第37次CSP认证考试中获得470分,第38次CSP认证考试将于6月8日举办,报名正在进行中。每年CSP高分考生(200分及以上)均可报名参加CCSP竞赛,CCF不定期邀请CSP高分和CCSP获奖选手分享经验,希望能够帮助同学们取得更大的进步。



图片

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



我与CCF“迟来”但不缺席的缘分


说起算法竞赛,我有千言万语可以滔滔不绝。我是一名大二才开始学习算法竞赛的“零基础”选手。第一次与算法竞赛相识,还是在武汉大学新生程序设计竞赛的赛场上。那时的我瞬间就体会到了算法的纯粹和有趣。虽然作为一名小白, 我并没有在第一次比赛就取得很好的成绩,但这次的相遇,让我心中产生了一丝悸动,或许我与算法的“缘分”到了。


自那以后,我也算是步入了算法竞赛殿堂的大门,开始努力学习ACM算法。我的进步虽不算神速,但也是步履蹒跚,逐渐学习更多的算法,揭开一个个精妙题目背后的神秘面纱。大二寒假期间,我全身心投入算法学习当中,每天都泡在图书馆,直到快要除夕才回家过年。这段时间的学习,为我的算法知识体系打下了坚实的基础。


24年初,我在翻阅学校的综测文件中发现了CSP认证的相关内容,于是上网查询,找到了CSP的报名途径。也许从这时,我才是第一次真正地与CCF相识。在了解本校CSP认证的信息后,我毫不犹豫地选择了报名,我想要证明自己的学习成果,我想要展示我的实力。


24年3月,我第一次坐在CSP的考场上,出乎意料地取得了455分的优秀成绩。但其实那一次的试题难度偏易,不过也为我增长了不少信心。后来的ICPC湖北省赛中,我取得了一枚银牌,那时的我一度觉得自己非常厉害。


再到后来,我的算法竞赛之路就开始变得坎坷崎岖。在之后的半年内,邀请赛打铁,区域赛一次铜首一次打铁,无不挫伤了我先前的锐气。这也让我充分地意识到,作为一个学习时间不到一年的“零基础”选手,面对的对手要么是天赋异禀的“大佬”,要么是从初高中就开始学习信息学奥赛的“元老”,想要在赛场上取得好的成绩,那必是犹如“徒手攀高峰”。在经历了些许打击后,我没有因此放弃,而是重振旗鼓,继续负重前行。


图片

2024年ICPC杭州赛场,左二为黄祯


24年12月,我再一次参加CSP认证,取得了430分、武汉大学第一名的成绩。今年3月,我第三次“征战”CSP,取得了470分、全国第二名的骄人成绩。随后的团体程序设计天梯赛也取得了个人和团队两个全国一等奖,蓝桥杯Java A组省一等奖第1名。


到如今,我已经步入算法竞赛的大门有一年半了。比起众多高手,我也仅仅只是一名刚出新手村的“玩家”,但正是如此,也让我有了“初生牛犊不怕虎”的勇气。或许,这就是对算法竞赛的热爱,才能一直推动着我,砥砺前行,勇攀高峰。



把握题目,分析学习策略


CSP作为一个面向所有高校学生和业界人士的资格认证,它的题目难度具有良好的区分度。每次CSP认证的时间是4个小时,5道题目,每道题目都是100分,合计500分。


  • 第一题是一道简单的模拟题,只需要根据题目给定的方式进行简单模拟即可获得满分。绝大多数考生应该都有能力通过此题。例如第37次CSP认证的第一题,只需输出一个二次函数的偶数点的函数值和即可。


  • 第二题往往是一道涉及DP,贪心,前缀和与差分等基础算法知识点的题目。这一类的题目具有一定技巧性,是对一个程序员基础算法设计能力的检验。如果想要驾驭这一部分的题目,可以去CSP官网寻找往年的模拟题,还有洛谷或leetcode等OJ平台做题。例如第37次CSP认证第二题,需要用到线性dp求解。


  • 第三题一般是一道体量较大的模拟题。这道题的特点是一般都会有非常长的题面,看上去有些“吓人”,但其实只要认真读好题目,打好草稿,仔细分析其中的关键点并用合适的数据结构进行求解,步步为营,即可解决这道题目。例如第36次CSP认证第三题,只需要按题意模拟“组相联”的cache块的工作方式即可,题目虽有些长,但所有的解题要点都在其中,一路看下来便会发现柳暗花明,豁然开朗。


  • 第四题考察的内容会比较广泛,包括图论建模,数论等知识。其实对于没有接触过算法竞赛的考生,这道题开始将会有较大的挑战。例如第36次CSP认证第四题,考察了图论建模+Dijkstra最短路求解。想要建出图论模型,必须深入理解题目答案的求解方式和最短路径算法的运行原理。第37次CSP认证第四题,考察了区间gcd扩大必然减半的性质。这些题目需要有较为扎实的数学和算法功底才能够拿到满分,对于算法竞赛选手来说,这道题也是拉开他们与普通考生之间差距的题目。


  • 第五题考察的内容一般是数据结构。这道题对于任何考生来说都具有很大的挑战性,我觉得不论是谁都没有把握能够一定“拿下”这道题目。此题考察的知识点也非常广泛,往往涉及线段树、平衡树、启发式合并、LCT等高难度算法。例如第37次CSP认证第五题,需要使用LCT维护子树信息才能拿到满分,需要使用树链剖分与线段树才能拿到70分。第36次CSP认证第五题,需要对原序列建笛卡尔树,并在树上dp才能拿到满分。


CSP认证的题目像一座座山峰,从第一题的“小山包”,到第五题的“珠穆朗玛峰”,想要登顶,需要的是勇气、毅力、日复一日的努力与训练,同时也需要考场上沉着、冷静的思考与编码。但不管你是算法竞赛选手,还是未接触过算法竞赛的考生,只要你不断向前,拿下满意的成绩,你都是那个值得被尊敬的“攀登者”。


图片

黄祯第37次CSP认证成绩



CSP备考,行之有道


刚才分析了CSP的若干题型,接下来我以我个人的见解分享若干备考建议。


首先,对于平时练习,需要熟练掌握前缀和、差分、基础动态规划、贪心、图论最短路和最小生成树等基础算法。对于这些算法,需要能够默写出来,并且要对算法时空复杂度有清晰的把握。例如,105的数据范围则不能通过图片的算法,Dijkstra算法在稀疏图应使用堆优化将时间复杂度降低为图片等。这是对计算机运行效率的基本认知,如果想要取得高分,一定要了解这些基础的内容,平时多在洛谷、leetcode、牛客等OJ平台做题,可以尝试参加一些小比赛,在巩固基础算法的同时,也是在提升自己的编码能力。


其次,平时训练的过程中,可以构建自己的“算法工具箱”,一般叫做“板子”,也就是那种编码较为冗长,不好记忆,但是又非常有用的算法模板。例如,ST表,树状数组等数据结构,可以编写在自己的“板子”中,只要自己能够理解算法的运作机理,懂得在遇到不同的问题时如何调试自己的模板,这份“板子”将成为考场上编写代码时的得力助手。我在学习算法的过程中,已经积累了150页A4纸大小的算法模板,当然很多算法较为高深,对于普通的“CSPer”,只需要整理自己常用的,考试常考的一些算法模板即可。在CSP考试时,是可以携带纸质资料的,可以把预先准备好的算法模板打印出来带进考场中。


最后,在考场上,如果遇到了不会100%数据范围解法的题目,完全可以使用复杂度稍高的算法拿到部分的分数。这种做法在第四题和第五题尤为有效,拿到这一部分的分数可能就意味着排名可以上升不少。同时,不要害怕交题,最终成绩取决于多次提交的最高分数,而系统限制的32次提交基本是够用的,我们需要做的,是仔细读题,认真思考,解决问题。保持冷静,专心致志,我相信每一位考生都能发挥出自己最好的水平。



写在最后


感谢CCF给予我这次机会,让我能够分享自己的算法学习经历与感悟。算法之路,不积跬步,无以至千里。我会永远热爱算法,热爱它的那份纯粹、巧妙,热爱思考时给我的启发,热爱AC时的那份惊喜与欢乐,热爱赛场上与队友一同拼搏的分分秒秒。愿CSP与CCSP越办越好,也祝愿每一位考生和选手都能在赛场上取得理想的成绩,见证自己的努力开花结果!