返回首页
您的位置:首页 > 新闻 > CCF新闻 > CCSP

CCSP金奖说 | 哈尔滨工业大学丁文涛:始终热爱、始终成长

阅读量:0 2025-11-28 收藏本文

哈尔滨工业大学丁文涛在2025 CCF CCSP竞赛中获得全国第三名,指导老师为哈尔滨工业大学史建焘。每年CSP高分考生(200分及以上)均可报名参加CCSP竞赛。第40次CSP认证考试将于12月7日举办,报名正在进行中。CCF不定期邀请CSP高分和CCSP获奖选手分享经验,希望能够帮助同学们取得更大的进步。




人物介绍

丁文涛,哈尔滨工业大学本科大四在读,高中就读于江苏省扬州中学。高中取得过NOI2021夏令营银牌,大学参加CSP认证获得两次满分,2024年和2025年连续两年参加CCSP分别取得全国第六名和全国第三名。此外作为哈工大ACM校队成员曾获得 ICPC 昆明站季军、香港站季军,代表学校参加第49届ICPC世界总决赛取得high honor。担任知名算法竞赛平台“洛谷”的志愿管理员。

图片


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





我的算法竞赛之路


从初二第一次接触算法竞赛开始,我持续参加CCF主办的信息学奥林匹克竞赛(OI)相关赛事,在初中获得过NOIp普及组一等奖、高中参加 CSP-S和NOIp(提高组),可惜最终止步省队选拔,以非正式选手的身份参加了全国青少年信息学奥林匹克竞赛(NOI2021)最终取得了夏令营银牌。未能进入省队获得正式奖项成为了我中学算法竞赛生涯的遗憾,但多年过去已经释然。


大学我延续了中学对于算法竞赛的热爱,参加校队选拔进入哈尔滨工业大学ACM校队,后代表学校参加了ICPC、CCPC等传统ACM系列赛事;同时我也积极参加诸如CCSP等比赛。在这一段宝贵的经历里,我结识了算法圈里的很多选手。


图片

第十一届中国大学生程序设计竞赛(CCPC)哈尔滨站于今年11月8日至9日由哈尔滨工业大学成功举办,我担任出题人/裁判组人员/直播组人员/技术组人员,此为在华南理工大学队伍座位前的合影。


在2024~2025赛季的ICPC,我通过昆明站、香港站的两次季军取得了ICPC世界总决赛(World Final)的出线资格,有幸代表学校参加了第49届ICPC World Final。这弥补了我中学时期未能更进一步的遗憾。


图片

参加World Final的胸牌



参赛经历


此次CCSP碰巧在哈工程举办,离哈工大只有几站地铁,十分方便。我认识的一名选手(网名柚子厨)就在哈工程就读。十月底的哈尔滨温度已经来到了零下,寒风提醒来自全国各地的选手增添衣物。


图片

哈尔滨工程大学校训石


图片

在哈工程广场上漫步的鸽子。因其慵懒的习性,互联网上常用鸽子比喻偷懒摸鱼的人,带有调侃意。我认识的一位技术专家就经常发鸽子表情包。


与往年一样,CCSP试题共有五道,且前三道偏向考察算法、后两道侧重工程实现。但与往年不同的是,这次第五题以任务调度为背景,希望选手提交尽量优的调度策略,选手方案在本题的得分除了与正确性有关外,还和选手优化分数在总榜内的排名有关,是一次独特的创新。


打开试题册,第一题要求选手构造最优的参数使得序列逆序对数尽量少。然而我先入为主地考虑了逆序对常见的线段树/树状数组求法,后来发现引入这些数据结构是不必要的,引入额外代码反倒带来额外的麻烦,导致我在第一题浪费了一些时间;第二题使用了一个堆上内存分配的场景,不过其核心是一个简单的图论模型。本题考察的算法知识点不难,但是理解题意、处理读入等需要选手具备一定的经验。我借助计算机知识迅速摸清了出题人的意图,并利用我对C++ IO库的理解迅速完成了本题,获得了本题的首杀,令我颇感意外。整体看来,前两道题目的难度相较于去年有所提高,但考察的知识点等仍然较为基础。


本次的第三题难度较高,需要经过多步逻辑推导并进行合理的实现。我在观察样例、纸笔模拟后推导出了本题的一些重要结论,但在具体代码的实现路径上遭遇了一些困难。题目的数据范围较大,迫使我思考能不能找到复杂度更优的做法;然而可能更优的做法对代码细节以及实现的要求较高,实现不当可能导致复杂度退化。最终我放弃了实现一个理论复杂度可能更优秀的算法,而是选择了另一个相对劣但是实现明显简单的方法,最终通过了本题。此时我在排行榜上稍有落后。


在完成第三题后,比赛时间已经过去了三四个小时。我一边吃午饭一边阅读第四题“数据库查询优化”。


图片

第四题从第9页到第23页共占据了15页的篇幅,是今年最长的题目


该题是整套试题最难的题目。长达十五页的题目描述占据了整套试题册的一半;题目不仅要求选手实现一个简单的MySQL解析器,还要求选手通过指定方法估算查询计划的开销,并通过算法得到期望开销最小的方案。我在拿到题面时并没有十分惊讶,在CCSP里出现极长的工程题描述并要求高效的代码实现是很正常的事情。题面虽长,但其实许多是辅助理解的样例;同时任务目标容易拆成两部分:一是编写MySQL解释器解析题面规定的简化版MySQL,二是针对构建好的语法树执行优化操作,而这是一个简单的状态压缩动态规划过程。逐步分解任务内容、安排实现路径,再复杂的工程题也可以拆解成一系列基本的步骤。


我从中午开始编写第四题的代码,一直写到比赛十一个小时封榜才完成题目代码的编写,并在提交中获得了80分。不过最终未能发现两个测试点未能通过的原因,拼尽全力未能战胜。


这次第五题题目做出了许多创新,引入了特殊的分数计算规则。然而由于我编写完第四题时间所剩无几,我没有再多的时间精细完成本题的实现,最终只通过了其中的七个测试点,保底能拿35分。算上第四题取得的80分优势,总分415+只要没有新的选手在第四题取得分数就能获得很好的排名。


发榜后取得了第三名,符合心理预期。算上去年在CCSP取得了第六名,这是我第二次获得CCSP金奖并获得前十五名的好成绩。


赛后复盘,本次比赛前三题是较为常规的算法题,然而第四题编写难度很大,导致尝试该题的选手数量很少,而最终能够在第四题取得可观分数的,仅有冠军中山大学陈景泰、亚军清华大学闫陈效和我三人。第五题引入了特殊的机制,然而似乎区分度不佳,前排选手的差距仅有几分,也为最终结果带来了悬念。我在赛场上挑战第四题也是一个相当冒险的举动,如果失败了不仅不能取得第三的成绩,甚至有可能丢失金奖。


赛后约上陈景泰(tiger2005)和于之航(网名yzhang,NOI2022银牌,但由于某些变故遗憾未能进入南京大学,本场比赛取得了全国第八名)进行了聚餐。


图片

正在接受赛后采访的于之航


图片

参加完CCF颁奖典礼后发放的哈工大文创雪糕



备赛建议


作为经由CSP选拔的全国性赛事,CCSP汇集了来自五湖四海的高水平选手,其中不乏从中学就开始参加相关竞赛的“职业选手”,因而比赛强度高、竞争压力大。然而CCSP本身与传统的OI/ACM赛事的风格有所不同,针对性训练也能发挥出良好成绩。


刷题,刷题,刷题


没有什么比做题学习更加重要。成套的刷题可以弥补知识点的缺失,也可以锻炼代码实现能力、临场应变能力,只要身经百战、见得多了,见过各种常见的套路和算法,做题就能如鱼得水。如今主要赛事的题目几乎都可以在网上找到,许多算法竞赛平台如洛谷、UOJ、LOJ、QOJ都提供评测功能。除了大型赛事外,还有洛谷月赛、Codeforces Round、ATCoder Contest等提供丰富的定期训练比赛,这些比赛经常会有相当数量的选手参加,通过参与这些比赛可以及时了解到选手自身水平情况,也可以根据做题情况查漏补缺。


图片

这是由NOI金牌选手时庆钰(Qingyu)主持的算法竞赛平台QOJ的做题数量统计。榜单上有许多国内外的算法竞赛高手,例如榜首来自日本东京大学的 hos.lyric、第四名来自上海交通大学的夏日影队伍(他们在刚刚结束的 ICPC西安站力压北大清华取得了冠军)。


沟通、交流、学习


除了做题之外,充分利用社区资源也是学习算法竞赛不可获取的重要部分。许多顶级选手经常会在社区用户群里活跃,一些重要资料例如集训资料(题目、课件等)、国家集训队论文、算法模板也可以在公开互联网上找到。算法竞赛是一门不断发展进步的比赛,不时有新的技巧被发现、新的算法被引入。始终保持对算法竞赛的热爱,谦虚地学习算法竞赛前沿,才能保持进步。


图片

在某游戏服务器里和来自北京大学的选手一起搭建了北京大学的校徽


实践


CCSP是一门高度考察选手工程能力的比赛,本场比赛里最终决定冠亚季军的就是第四题工程题。这题综合考察了选手对数据库、编译原理的知识掌握,也考察了选手对动态规划算法的掌握,是一道综合性较强的试题。要锻炼解决工程题的能力,唯有实践。在学习知识点之外,还需要编写代码程序,这不仅是提高代码的编写速度、降低错误率,更是训练对长代码的工程组织、工程实践。


除了完成基本的算法题实现外,算法竞赛选手还可以尝试项目工程实现,编写简单的项目,这是有效提高代码能力的途径。当面对成百上千行的代码不会胆怯,面对复杂多变的工程题就能游刃有余。


图片

CCPC哈尔滨站的直播现场,正在进行赛后滚榜环节。我和学校技术组同学一起完成了icpc直播流工具的搭建和使用,使得使用ccpcoj输出的数据进行直播成为了可能。直播画面里是来客串的一名选手。



结语


2025 CCSP是我能够参加的最后一年CCSP,第三名的成绩也为我的CCSP之旅画上了圆满的句号。如今越来越多的选手意识到算法竞赛的重要性,信息学竞赛正在蒸蒸日上。我希望大家保持这份热爱,砥砺前行,最终取得自己心仪的成绩。


同时,我也由衷感谢CCF为我们提供的比赛平台,希望CCF未来的比赛能够更加成功。