河南科技职业大学校徽竞赛指南

武奕桐

2025 届学长武奕桐的竞赛经验分享(以下内容均来自武奕桐本人)

一、我的备赛起点

我是在大一寒假开始正式准备算法竞赛的。

当时参加蓝桥杯的主要目的,并不是单纯为了拿奖,而是希望通过算法竞赛给自己打下一个比较扎实的算法基础,为之后学习计算机相关内容做准备。

刚开始的时候,我的基础其实非常差。社团周赛基本不会做,只会二分和冒泡排序,DFS、BFS、动态规划、图论这些内容基本都没有接触过。

后来备赛过程中陆续学习了 DFS、BFS、动态规划、贪心、前缀和、二分、最短路等比较常见的算法和题型。

最终蓝桥杯 C++ B 组省赛拿到了一等奖。

二、我是怎么学习算法的

因为一开始几乎没有算法基础,所以我的学习很依赖 AI。

我的使用方式一般不是直接把一道题扔给 AI 让它给答案。

如果我看到一道题,已经能够判断它考察的是某个算法,但自己不会做,我通常会告诉 AI:

“我知道这道题应该使用某某算法,但是我不知道应该怎么解决。”

然后让 AI 给我讲这个算法在这道题中的思路。

如果遇到的是一个完全没有学过的知识点,我会先让 AI 系统地讲这个算法本身,再去做相关题目。

之后主要在洛谷上刷题。

我觉得 AI 对我最大的帮助,是降低了学习算法的门槛。

对于一个完全没有基础的人来说,有时候直接看算法书、博客或者题解,很容易出现连题解都看不懂的情况。AI 可以根据自己的水平不断换一种方式解释,直到能够理解为止。

除此之外,我认为自己 Debug 也非常重要。

真正自己写代码以后,会遇到很多边界错误、状态设计错误或者实现错误。自己慢慢定位这些问题,对理解算法的帮助有时候甚至比单纯再刷一道题更大。

三、我踩过最大的坑:把“熟悉”当成“掌握”

我备赛期间经常遇到一种情况:

一道题已经 AC 了,但是自己仍然觉得没有真正掌握。

所以我以前很喜欢二刷、三刷同一道题。

重复刷题确实有一定作用,但后来我发现这里有一个问题:

当一道题已经做过几次以后,再次做出来,有时候并不是因为真正掌握了这个算法,而只是因为已经记住了这道题的思路。

这很容易产生一种错觉:

“我会做这道题,所以我已经掌握这个算法。”

实际上,“见过”“熟悉”“能够独立使用”是完全不同的三个阶段。

我后来在比赛中遇到的问题,很大程度上就是知识停留在了“熟悉”这个阶段,还没有达到能够在陌生题目中灵活运用的程度。

所以如果让我重新准备一次,我不会再单纯追求刷题数量。

比起盲目刷很多题,我现在更看重:

看到一道第一次遇到的题以后,能不能自己判断应该使用什么方法,能不能独立把思路推出来。

四、省赛一等奖之后,我反而松懈了

省赛拿到一等奖的时候,我最大的感觉还是“之前的努力有了回报”。

但是省赛之前的备赛过程比较狠,也比较累。

省赛结束以后,我一下失去了继续高强度备赛的动力,之后很长一段时间基本没有继续认真准备。

一直到距离国赛只剩三十多天的时候,我才重新按照省赛之前的方式开始准备。

现在回头看,这个断档其实对国赛影响很大。

算法这种东西,尤其是比赛状态,并不是学会以后就可以长期不碰。

长期停止训练以后,很多知识可能仍然觉得“自己见过”,但是实际做题的时候已经很难调用出来了。

五、比赛让我意识到“会过题”和“比赛能力”是两回事

省赛当天我自己的发挥其实并不好。

整个比赛过程都有点迷迷糊糊,其中有一道图论题卡了接近两个小时,最终也没有做出来。

到了国赛以后,情况更加明显。

很多题基本看不懂,也不知道应该从什么地方入手,最后比赛结果并不理想。

后来参加 CCPC 省赛时,我又遇到了一个更加明显的问题。

有一道 BFS 题,我以前做过非常类似的题目,但是比赛现场仍然卡了两个小时没有做出来。

赛后看到答案的时候,我并没有觉得答案有什么特别巧妙的地方。

我的感觉反而非常平静:

这就是对自己知识掌握不牢的一次惩罚。

因为我以前只是“做过类似题”,并不意味着我已经真正掌握了这种类型。

这几次比赛以后,我才越来越明显地意识到:

看懂一个算法、做过一道题、能够独立 AC 一道题,以及能够在比赛现场灵活运用,是完全不同的能力。

六、AI 学算法最大的帮助和最大的风险

我依然认为 AI 非常适合辅助学习算法。

尤其对于刚开始学习的人来说,它可以帮你跨过“完全看不懂”的阶段。

但 AI 也有一个非常明显的副作用:

很容易让人产生“我看懂了,所以我会了”的错觉。

AI 把一道题讲清楚以后,我们往往会感觉:

“原来这么简单。”

但真正把题目关掉,过几天再拿一道人名、背景、条件完全不同的新题,可能还是不知道怎么做。

所以如果现在重新使用 AI 备赛,我会改变使用方式。

我会尽量:

  • 少让 AI 直接给完整答案;
  • 更多让 AI 提供思路和提示;
  • 先自己独立思考第一次见到的题;
  • 自己有思路以后,再让 AI 帮我检查思路中的漏洞;
  • 对不熟悉的算法,让 AI 重点讲算法本身,而不是只讲某一道题。

我希望 AI 更像一个老师或者教练,而不是一个答案生成器。

七、如果重新备赛,我会改变什么

如果让我重新准备一次蓝桥杯,我觉得最大的变化不会是“再学更多算法”,而是改变训练方式。

第一,我会增加模拟比赛。

以前学习过程中,更多是在“我知道自己现在正在练 BFS”“我知道这一章是在练 DP”的环境里刷题。

但是比赛不会告诉你这是一道 BFS 题还是 DP 题。

所以需要通过限时模拟,训练自己从一堆陌生题目中判断题型、安排时间、决定什么时候应该放弃一道题。

第二,我会减少对答案的依赖。

一道题第一次出现时,我会给自己更多独立思考的时间。

哪怕最后没有做出来,这段独立思考本身也非常重要。

第三,我不会再单纯追求刷题数量。

真正重要的不是“我刷过多少题”,而是:

下一次出现一道我从来没见过的题,我能不能把以前学过的东西调出来。

八、最后的一点感受

如果现在有人和我大一寒假时一样,社团周赛基本不会做,算法基础几乎为零,问我:

“现在开始准备蓝桥杯还来得及吗?”

我的回答还是:

坚持就一定有。

我从只会二分和冒泡排序,到最后拿到蓝桥杯 C++ B 组省赛一等奖,这件事情至少证明,起点并不是最重要的。

但如果让我补充一句,我现在会说:

坚持并不只是每天机械地刷题。

真正重要的是在学习过程中不断判断:

我现在到底是真的掌握了,还是仅仅因为见过,所以觉得自己会了。

这可能也是我整个竞赛经历中得到的最大教训。

Last updated on

On this page