张丁祎,软件学院大三学生,CCF学生会员。曾获CSP-S 2019省一等奖、ICPC亚洲区域赛金奖、2021 CCSP华东赛区金奖、EC Final银奖。在校期间获国家奖学金,担任山东大学CCF宣传大使,目前为山东大学CSP创新实验室学生负责人。
竞赛之旅
张丁祎高中就读于衡水第一中学,高一入学前在吕红波、于淼两位教练的指导下第一次接触算法竞赛并产生了浓厚的兴趣,在之后的两年中一直努力提高代码能力和竞赛水平,最终在2019年的CSP-S中取得了378分的成绩,在河北省省队选拔中取得了全省第九名。
进入到大学之后,在刘辉老师和王政老师的支持和鼓励下,张丁祎在第23次和第30次CSP认证中分别取得了460分和480分(全国第三名)的好成绩,获得CCSP华东赛区金奖。除了CCF系列竞赛之外,张丁祎还组队获得了ICPC区域赛的两枚金牌和EC-Final的银牌。
如何备考CSP
CSP的题目一般来说有规律可循。第三题为大模拟,要求实现一个在现实中存在的复杂系统,比如压缩文件的解压缩、LDAP系统,此类题目题面一般比较长,在读题时一定要有耐心,切忌只读大意,忽略题目的重要信息。在读懂题目之后,便可以按照题目的要求一步一步完成模拟了,一般不会涉及到比较高级的算法和数据结构。一二四五题通常难度递增,第一二题主要考察思维能力和代码能力,四五题的考察范围包括动态规划、数据结构、图论,且实现起来比较复杂,例如第30次CSP认证第五题就用到了状压dp,需要开三维的dp数组,前后一共有两次状态转移和两次子集转移。CSP的往届题目可以在报名后台的模拟考试中找到,写好的题目也可以在这里提交评测,大家在掌握基础之后,可以在这个平台以考代练,逐步提高竞赛水平和CSP认证分数。
CSP的所有题目都有梯度明显且分值较高的部分分,如果不能写出正解,可以退而求其次,使用复杂度相对较高的算法获得部分分,有一些部分分的设计还会起到启发正解的作用。此外,CSP和IOI的在线评测系统相似,在提交题目之后便会得到具体分数以及错误类型的反馈,这对之后的纠错和调试有很大帮助。
CSP和CCSP竞赛使用的是Ubuntu操作系统,张丁祎建议大家提前熟悉环境,找到适合自己的编辑器,在配置好编译环境后便可以像Windows下的Dev-C++一样一键编译运行了。张丁祎在比赛中一般使用vscode。
写在最后
回顾五年的竞赛路,张丁祎非常感谢CCF中国计算机学会提供的比赛机会,也感谢一路上各位老师教练的教导以及HZOI、ACM各位同学队友的帮助。张丁祎祝CSP系列竞赛的知名度越来越高,成为中国大学生竞赛中的清流和顶流!
(文/图:刘辉、张丁祎 责任编辑:周元峰)