写在最前面
本文是一篇关于一个算法竞赛菜鸟的回忆录,没有太大的意义,担心浪费自己时间的大佬们无需阅读
个人情况
本人就读于贵州的一所末流211,上大学第一次接触算法竞赛,自己也没有太高的天赋,拿过最高的奖项也不过是ICPC区域赛的一个铜牌。
大一
刚进大学的时候学校的竞赛队就开始招新,组织新生打训练赛,但那个时候我没有太在意,所以就没有参加。由于学校开设了C语言,所有我就在室友的推荐下用洛谷写了一些算法题,那个时候的水平特别菜,学算法也学的很少,写个橙题都十分勉强,黄题更是看不懂。
后来大一下学期开学的时候,学校竞赛队组织天梯赛的选拔赛,在学校的机房举行的,当时自己特别菜,就过了一个签到题,被一个高精度加的模板题给卡住了,写了两个小时硬是没写出来,不出所料的落选了,我那个室友由于在高中就学过算法竞赛,在选拔赛中拿到了第二名,成功进队。然后我大一下学期就偶尔写写洛谷,打一打校内的训练赛,总之都是非常摆烂。
直到后来大一下学期的暑假的时候,我积极参加队内的训练赛,并且经常排名靠前(主要是校内组织的比赛很水,大佬都不打,或者就签完到就走),被教练看到了,这样才被拉进学校竞赛队伍。这个暑假我还参加了我的第一个比赛,百度之星,当时的水平确实是非常菜,什么奖都没拿到,我那个室友拿了个省二。我非常伤心,怀疑自己有没有学这块的料。但后来百度之星给我补了一个省三(百度之星的省赛是分三场,每人可以报名多场,取最好成绩,后面的奖项顺延,我就被补了一个省三),这时心情才稍微好一点,但是都感觉自己没有什么拿的出手的奖项。
大二
大二上开始坚定自己想要学好算法竞赛的决心,开始增加自己学算法的时间,开始晚上熬夜打codeforces。然后还参加了2023ICPC的网络预选赛,一个队友是我那个室友,还有一个队友是我那个室友的一个朋友,是一个非常菜的队伍,第一场写了三个题,而且基本上都是队友写的,我印象很深的就是但是那个队友问我会并查集吗,然后我说我不会,当时确实是太菜了,大一基本上没学什么,都去玩了,很多基础的算法都没有学,第二场写了两个题。后面不出所料,区域赛没有我们队伍的名额,都给大三的那些学长了,以及小部分大二的。
我cf的分也升的很慢,一直到十一月份才上了一个绿名,水平算是稍微上去一点了,当时打div2的比赛,能写出ABC就很不错的。
大二的那个寒假,在教练的建议下我和我的那个室友打算留校集训,虽然说在家里面也可以学习,但是学习效率太低。令人难过的是辅导员不让留校,本来打算悄悄留下来,结果后面辅导员直接来我们竞赛队的实验室赶人,无奈之下只好回家集训。但是在里面学的实在不怎么样,一个寒假感觉都没什么进步。
大二下学期我搬到实验室去学习,投入的时间多了,基本上一有时间就去实验室学习,虽然期间还是有懈怠的时候,但是相比以前学的更多了。这个时候我开始看一本叫《算法竞赛进阶指南》的书,里面的题目都很不错,还可以在acwing上面写题,acwing上面还有视频讲解,通过在acwing上面刷题,我自我感觉进步还是蛮大的,可惜我还是没能看完《算法竞赛进阶指南》,上面的题目都太难了。
再后面就是分配ICPC队伍,我和我室友,还有班上的另一个同学组了一队,开始着手准备明年的ICPC,毕竟明年我们就是ICPC的主力了。
大概是四月份的时候,我参加了天梯赛,我是在我们学校的一队,最后我所在的队伍拿了一个国二,个人拿了一个国三,是当时我拿过的最好的奖项。
然后就是蓝桥杯的省赛,蓝桥杯的题目很难,但是由于参加人数很多,所以拿奖比较容易,打省赛时担心自己拿不到奖,毕竟题目很难,能完整的写出来的题目没多少,别的都是打的暴力解法,或者直接空着。后面拿了个省一,成功拿到决赛名额。国赛当时只希望自己可以拿一个国三,这样才能报销报名费,后面惊喜的拿了个国二。
五月底的时候在教练的安排下去云南大学参加ICPC邀请赛,第一次出去打比赛,非常开心,可以去新鲜的城市去看看,就当出去旅游了,而且云南的天空很好看,有很多好看的云。可惜的是最后还是没有拿到奖,多了一个题的罚时,遗憾打铁了,这场比赛主要是太粗心了,罚时太多了,但凡少一个罚时就铜了T_T。同校的另外两个队伍都拿到了铜牌,羡慕死我了,要是我也有个ICPC的奖牌就好了。参加这种线下的比赛就是不一样,比线上的有意思多了,那种氛围是任何一种线上的算法比赛比不了的,经过这次打铁的沉痛经历,回去之后的一个周都干劲十足。
在大二下期间cf的分慢慢提升上去了,成功从绿名提升到蓝名,最高到了1700+。晚上熬夜打cf有些时候真的遭罪,室友睡觉不敢敲太大声,自己写不出来题很坐牢,大晚上的还容易犯困,但又不敢去睡觉,毕竟写不出来就掉大分。
大二的暑假我只回家了两个周,其余时间都在学校集训,备战下学期的ICPC区域赛。每天和队友打一打杭电多校,虽然每次都写不了多少题。我感觉在这个暑假进步还是蛮大的。
大三
大三就是我参加ICPC的重要时期了。第一场网络预选赛打的比较差,最后队名是在1000名,赛后总结下来,就是自己水平太菜了,得加练。第二场也打的很差,被签到题卡了很久很久,我记得写过类似的题目,当时死活就是想不起来,后来终于写出来了,但耽搁的时间太久了终究还是没有写出太多题目,排名还是1000左右。幸好我们学校一队打的很好,拿到了很多名额,不然后面都没有那么多故事了。
2024年ICPC第一站是成都站,我们学校有两个名额,教练派出了二队和三队,我们队伍是三队,就去参加了这场比赛。我们是周五出发,周一回来。第一天到酒店的时候两个队伍一起出去吃火锅,晚上休息一下,第二天再去比赛地点领取物资和打热身赛,打完热身赛又去参加了华为举办的一个讲座,听完讲座发了个小礼品。第三天才是重头戏,ICPC区域赛正赛。当时题目发下来发现没有中文就失望了一下,毕竟我们队伍三个人英语水平都不怎么样。签到题题目有点长,看了很久才看懂,过第一个题就已经是20分钟了。然后第二题浪费了特别多时间,一开始我就想打个暴力写法,但我听队友说用dfs,我咋一想,感觉好像有点道理,我就写了一发,发现自己粗心打错了,改了一下后又超时,一算时间复杂度果然不行,我就改成了我一开始的想法,写了一发就过了QWQ。后面我把电脑交给队友,他说他有能写的,结果写了很久都是错的,搞得整个队伍都很慌,毕竟不想自己ICPC最后以遗憾收尾,当时也不知道教练会不会再给我们队伍一个名额。然后我自己就看了看那个题,发现那个题是我讨厌的那种类型,就不想去写,我就去看另外一个过的比较多的题目,那个题目特别特别长,但看完才发现这个题是另一个签到题,但由于题目太长了就没什么人写,题目我看了特别特别久,中间那个队友总算是把他那个题过了。他一过我就马上去写我的那个题,三两下就过掉了。这个时候差不多还剩一个小时,队伍排在铜牌末尾,怎么着都得再写一个题目,不然到结束的时候排名肯定会掉到铁牌去,我不想和昆明邀请赛一样又打铁。这个时候我那队友就给我说有个题可以用之前写过的那种方法,我信了,由于时间比较急,就和他边讨论边写。结果一直到比赛结束都没把样例过掉。后来讲题解的时候才发现这个题是线段树,不是我负责的板块,所以我就没写过这部分的题目,他没有看出这个题是线段树的,就教我用那个什么抽象方法写。每次他就说写抽象方法,咋一听有道理,可一写下去就发现这方法行不通。看题解的时候还发现有一个题目是dp的,是我擅长的板块,可惜没有时间写了,不然有可能能过的。打完比赛看完题解我和另一个队伍就走了,没必要等放榜和颁奖仪式了,毕竟都打铁了,于是就找了一个附近的湿地公园汽车骑自行车玩。最后晚上吃了顿烤+兔肉结尾。第一场ICPC区域赛遗憾打铁,ICPC成都站我们本来可以做的更好的,很有希望拿牌的,但是很可惜还是没拿到。
回来之后痛定思痛,加练,加练,再加练。后面我们队伍还要去上海参加一场比赛,上海站是我们最后的希望。那段时间基本上一有时间就组织队友们打一场ICPC真题模拟赛,一般下午没课的话就从三点打五个小时打到八点,一开始基本上偶尔还能铜牌,但最后两个周状态特别差,每场模拟赛的结果都是铁,一度怀疑自己自从参加完上半年的蓝桥杯国赛后的所有努力都是白费力气,毕竟自己期间没有获得任何更好的奖项,而且这段时间还是自己上大学以来最认真的一段时间,害怕自己的努力得不到回报。
后面到十一月的时候,第一场坐飞机去上海参加ICPC。一进机场打印登机牌的时候就被那个老阿姨骗着买了个非常非常没用的保险,当时看她穿着西装带着牌子,以为是机场工作人员,就放松了警惕,一不留神就买了个保险T_T。后面飞机还晚点了,一直等到晚上七点过飞机才来,当时还特别饿,机场的东西又很贵,还被那个老阿姨骗着买了份保险,后面下了飞机,地铁还停运了,被逼无奈只能打车,又花了快200块打车,要不是飞机晚点还能坐地铁的,我们本来是算好时间坐地铁的,没想到飞机晚点了。到酒店后随便吃点面就回去休息了。第二天起床11点,发现上海大学那边居然在发初音未来的周边,有超可爱的玩偶,于是就立马赶过去,结果已经没了T_T,去晚了,早知道早点起床。然后就是下午的热身赛,热身赛打的特别抽象,我那个队友写一个高精度加的题错了四发才过,热身赛总共就写了两个题,后面看题解的时候发现热身赛的题就是之前某一年济南站的原题的一部分,瞬间感觉天都塌了,觉得这次区域赛很可能又打铁了。上海站到目前为止都是处处不顺,但是没想到运气都留到了正赛,出乎意料的拿了一个铜牌,并且还是铜牌的首部位置,可以说成绩相当的不错。一开始由我写签到题,但是我一时粗心wa了一发,然后我队友写下一个题,他错的更离谱,把输出的"Alice"打错成了"Ailce",wa了一发,当时感觉肯定完了,后面我又写了一个dfs的题,在 另一个队友的帮助下成功一发过掉,一看榜,居然已经冲到银牌区了,我还清晰的记得当时看着那个题提交状态时的忐忑的心情,以及过掉后的庆幸。后面我们就开始写下一个过的最多的题,但是一直没有想出解法,然后我那个队友突然说他想试试银牌题,他说他会,我就想着反正我们拿个铜牌就不错了,毕竟以现在这个排名,很有可能到最后还能稳在铜牌(赛后我看了下那时的成绩,确实可以在铜牌尾部),就放心给他写,他随便怎么整都行,反正过不了也不会有额外的罚时,他写了一小会儿后,感觉没有bug后交了,令我们惊喜的是,一发过了!这个队友第一次这么给力。我们队伍又进了银牌区,只要我们可以把剩下这个铜牌题写出来就稳稳银牌,而且时间还有一个多小时。有点小可惜,最后还是没有写出这个题,我想到是二分答案了,但是就是写不出来,不知道怎么写,不过还是很满足了,能让我的算法竞赛生涯以一个ICPC的奖牌收尾,虽然只是铜牌。
完赛后还有一个多小时才是题目讲解和颁奖仪式,我就和我的队友们扫了共享单车,打算就在上海大学校园内骑单车逛一逛,我还记得当时那种放松和开心的心情,上海大学的校园挺不错的,很适合汽车,校园内风景也很好看,而且刚好还看到了上海大学的菊花展,有一条很大的龙,很好看,凑近去一看,发现居然还是用菊花做的,除此之外还有很多各种颜色的菊花,非常好看。
领完奖后当然是出去玩,好不容易来一次上海,肯定要好好玩一下,而且还惊喜的拿了个铜牌嘿嘿。我那个队友就叫上了他的一个在上海大学读书的高中同学带我们出去玩,先是带我们去他觉得很不错的一家淮扬菜餐厅吃饭,吃完饭坐地铁去上海外滩去看看东方明珠。上海外滩那边真的好多人,大晚上的都有那么多人,非常热闹,一路上还看到了很多那种民国时期留下了的建筑,就像那种电视上的一样,在上海外滩看东方明珠真的很好看,而且那里的人更多。后面还去了东方明珠的下面看了看,不过没有上去,上去的话要门票,就没有上去。上海真是一个令我开心的城市^_^
最后
今后都不打算花太多时间在这上面的,我的算法竞赛对于我自己来说算的上是圆满了,虽然只是铜牌,但我已经很满足,没有让自己留下遗憾。回想刚开始学算法竞赛时自己写个洛谷橙题都非常费劲,但现在居然不知不觉拿了那么多奖项。参加算法竞赛真是一个非常不错的经历,ICPC区域赛也是一个充满激情的舞台。
这个账号是我写来给自己看的,里面总结了我觉得有意义的题目,还有自己常用到的模板,以后应该也都不会更新了(虽然我觉得我写的文章应该没什么人看,包括这篇也是了哈哈),这篇文章算是给自己算法生涯和这个账号画个句号了。
写这篇文章还有个目的就是希望自己未来回忆自己大学生活的时候可以看看,毕竟这也算是我的青春了哈哈,趁自己对这些事情还有个清晰的感受,用文字记录下来。
最后的最后
分享一下个人比较推荐的资源:
首页 - 洛谷 | 计算机科学教育新生态 洛谷是我入门时期很喜欢用的
codeforces.com cf是参加ICPC必刷的网站,提升自己思维能力
AcWing - 《算法竞赛进阶指南》打卡活动 acwing也很不错,yxc老师讲的很好,尤其是dp模块
动态规划部分简介 - OI Wiki oiwiki上有很多模板,有时候看模板就在这上面
(不知道写这么多有没有人看QWQ)