首页 > 编程语言 >纪念我的算法竞赛生涯

纪念我的算法竞赛生涯

时间:2023-07-26 22:55:10浏览次数:36  
标签:赛季 竞赛 比赛 学长 生涯 算法 成绩

纪念我的算法竞赛生涯

三年时间,白驹过隙。三年前一眼望不到尽头的竞赛之路,现在竟然也渐渐看到了尾声。

按理说,以我这种并算不上勤奋的性格,通常应该懒得写这种文章来纪念些什么。(实际上这篇文章已经成功地被我从4月份拖到了现在)。不过思来想去,尽管常常自诩能记住很久之前的事,但是时间往往还是会冲淡记忆中每一分的情感。于是决定写点什么,姑且纪念一下两年多的算法竞赛生涯。

开端

故事开始于2020年的10月。学校里ACM实验室的学长走进我的晚自习教室,向我们介绍起了ACM-ICPC算法程序竞赛。实际上,这并不是我第一次接触算法竞赛:在初中时,我曾参加过几次OI,然而并不理想的成绩让我并没有在这条路上走下去。当然现在不一样了,刚进入大学的我有着充沛的热情和动力让我去尝试所有有趣的事。参加ACM实验室的活动并不需要很多的要求,于是我顺利地参加了进来。

第一次竞赛

第一次的竞赛,印象里是大一第一个学期的校赛。五个小时,一人一机,可携带纸质资料。具体的过程已经记不太清了,为数不多的印象大概只是一个并不突出的成绩。对于当时颇有自信的我算一个不大不小的刺激。不过更多的还是第一次比赛的新鲜感:不断更新的排行榜,五颜六色的气球,红色的Accept标志,这些都让我更加地喜欢这个项目。

训练与第一次参赛


在2021年1月,大一第一个学期的寒假。我正式开始了作为ACMer的训练。按照学长的推荐,注册了codeforces,牛客等训练平台的账号。说到训练,大多数的人常常会把这个名词和枯燥乏味等概念联系起来。不过对于当时的我,我更加觉得算法竞赛就像是一种游戏:用合适的“技能”组合,在“游戏规则”的范围内,实现“通关”。而Accept就是给我最好的奖励。于是我开始了每天没日没夜写题的日子。下午打牛客上的训练赛,傍晚补下午没写过的题,晚上20:00开始打AtCoder比赛,接下来再是打cf——当然是指codeforeces。什么?你说早上在干什么?早上在睡觉((

总而言之,这个寒假过得还算开心。

寒假过后,并不算少的做题量和优秀的训练赛成绩,让我成功地进入了集训队,得到了我最初的几次大型比赛资格。2020赛季浙江省赛,以及因为疫情延期的2020赛季银川站以及沈阳站。

因为疫情影响,浙江省赛从往年的线下赛变成了线上的模式。这一年的浙江省赛因为各种机缘巧合,正好和ICPC的ecfinal亚洲区总决赛在同一个周末。还记得那一天,机房里的学长们讨论着学校去参加ec的一队和二队,讨论着我那时听不懂的各类算法。当然我也很激动,主办方用邮件送来了比赛的纪念T恤,电脑上也已经准备好了比赛的环境和平台(虽然没有气球有些失望,不过总归是无伤大雅。

比赛的过程已经记不太清了,但是那一天的晚上依然让我印象深刻,在吃晚饭之前突然得知了获得铜奖——即三等奖——的消息。对于我们这样一只全部由新选手组成的队伍,这已经是一个足够好的消息了,毕竟我们原本都对获奖不抱希望。于是那天回寝室点了个外卖狠狠地吃了顿好的(

第一次的线下赛经历是ICPC2020银川站,也是我第一次出这么远的门。从杭州坐了将近12个小时的高铁到了宁夏。为什么不坐飞机呢?因为不报销......在赛场里,“正在和优秀的选手在同一个赛场竞赛”的感受更加的深刻了。在热身赛时,发现坐在我们队对面的名牌上写的是一只来自北京大学的队伍,队名叫“校门外歪脖树上的鸽子”。然而他们并没有出现,我还和队友调侃说真正的强者不屑于参加热身赛。然而他们队如其名,把正赛也给鸽了......还记得回程的那天,天色非常地好,坐在大巴靠边的位置随手拍了几张天空还被边上的同学要求让我给他也发一份。

当然这一站因为主办方的原因成功地在算法竞赛的历史上遗臭万年,并且在随后的一个赛季被取消了承办资格。(当然当时在赛站群里当场吃瓜还是吃得很爽的,嘻嘻)

后面同样地参加了ICPC2021西安邀请赛和ICPC2020沈阳。虽然成绩并不理想,不过总归是几次有趣的经历。(顺便感谢一下学长,酒店订的是真的豪华)

并不快乐的日子

2021年的暑假,是一段很难熬的时间。自从我在codeforeces上打上了1300分,我的分数已经快有5个月没有提升了。而很多开始学习比我晚的队员,分数已经接近甚至超过我的水平。在codeforces上打训练赛从一种乐趣逐渐变成了一种痛苦。深夜打完训练赛,看着又意味着一次掉分的排名,常常会躺在床上想:我是不是没有算法竞赛的天赋;别人能学得这么快,我为什么却不行。个人训练赛的成绩一开始还不错,到了后面却越来越不行,我陷入了一种不知道该做什么的迷茫。在那时,确实产生过这样的念头:要不就这样离开竞赛?

不过话又说回来,充足睡眠确实是个好东西。前一天晚上躺在床上胡思乱想,第二天似乎又能拿出些精神继续训练。

到了21年10月,终于在codeforces上打上了1600分,蓝名。对于天赋异禀的人,这甚至可能是可以在一周内做到的事,但是这一条路我走了将近9个月。不过这终于给了我如释重负的感觉,至少我的努力没有全部白费。

新赛季

进入21赛季,由于疫情,比赛大多在线上进行。连续的失利让整个队伍的积极性都并不高。这时候来了一场对我来说至关重要的比赛——CCPC2021哈尔滨。比赛当天早上,不幸的是三个7:30的闹钟都没能把我吵醒,幸运的是我最后一个8:30的闹钟成功的把我从睡梦里拽了起来。面包店里买了一个三明治,小卖部买了瓶绿茶外加一条备用的士力架,就冲向了机房。

结果出乎预料,我们打得非常顺利。在前四个小时的比赛里我们打进了前100名——这足以确保一个铜牌的成绩。在最后一个小时封榜后又出了一题。这之后再看看题,后面的题似乎已经超出了我们水平,于是我们全队在欢声笑语中聊着天度过了最后一个小时。最终rk92,三等奖。这是我的第一个大型赛事的奖牌。我和来自全国的选手同台竞技,拿到了铜牌。这一次的获奖让我高兴了很久。

2022赛季

时间来到2022年。在这一年暑假里,同样因为疫情延期的2021赛季ICPC ecfinal(ICPC Asia East Continent Final)终于在西安线下举行。幸运的是,由于拿到了一个奖励名额,当时的我作为学校二队参加了比赛。总决赛的强度不是普通区域赛能比的,所以成绩预料之中地白给了。看着获奖队伍上台领奖的环节,多少还是有些羡慕。毕竟打了那么久,虽然已经有过几次的大赛获奖记录,却因为全是在线上进行的比赛,没有上过领奖台。

2022的暑假,新赛季即将到来。上个赛季的19级队友退役考研。我拉来了两个同是20级的队友组了个新队伍。在这个暑假,我把cf打上了紫名1900,打多校从300名开外打进了前100,有惊无险的在预选赛中为学校打够了足够的名额。

最后一个赛季姑且可以说是顺风顺水,4场的线上赛,除了在威海站出师不利外,都拿到了银牌。姑且也有了越打越自信的味道了。

印象比较深的是ICPC2022南京。比赛在12月18号,恰逢疫情解封,学校提前放假。而我们留在学校打比赛。那一场我们队打出了历史最好的成绩,rk51,以罚时之差无缘金牌。略有遗憾,但这也不是一个应该伤心的成绩。

时间来到2023年。这一年,是我生涯的最后三个比赛,分别是ICPC总决赛,CCPC总决赛,还有浙江省赛。

这一年的ICPC ecfinal在上海举行。这一次,终于能上台领个奖了。打完比赛的那一天。在上海读研的学长带我们在上海逛了好大一圈(在途中三个明日方舟玩家成功地在路边随机刷新的周边店爆了金币)。总之是非常的开心。

最后一场比赛是22赛季的浙江省赛。总排名rk33校排名rk14,如果能再做一题,那么将是金牌。每当我想起这场比赛,都会觉得当时自己应该可以做得更多。不过这样的成绩对于当时已经是半退役的我们大概也是预料之中吧。


后记


将近两年半的时间就这样过去了。我很高兴能有这样一场独特的经历。如果要说我一开始为什么会参加算法竞赛。我觉得是单纯的喜欢和热爱。我觉得这是一个很有趣的项目,仅此而已。不过在中间,也渐渐参杂了对成绩的追求。对成绩的追求难免会在失败时带来挫折。但是同样的,我从这样的生活中,能感受到一种追求“更高更快更强”的体验。失败的体验确实苦涩,不过它也让成功的喜悦更加甜美。而在一切结束后的现在,回过头去看,功利性的成绩也并不是目标,真正有乐趣的部分,在于这一整个过程,努力的本身就足够有趣。就像很少有人愿意去玩一个一开始就通关的游戏,因为游戏的乐趣就在于想办法通关。

说点题外话,在第一次去西安打比赛的时候(2020ICPC西安邀请赛),当时的高浓度主办方给所有的电脑桌面都设置成了《苍之彼方四重奏》的女主角鸢泽美咲。比赛回家之后不久,我花了点时间打通了这款游戏。游戏的剧情描述了一种被称为“空竞”的虚构体育项目,而游戏中的各个女主角则是这个项目的参赛选手。有些时候,我会不由自主地在脑海中,将虚构的空竞和现实中的算法竞赛重叠起来。游戏中的剧情也让我仿佛看到了自己的影子。有的人生来就天赋异禀,他们花一点点的时间就能超越我们大多数人。但是我们应该就这样放弃吗?我觉得有些时候,不妨去试一试,毕竟这一过程本身就充满乐趣。

​参加算法竞赛也让我结识了一批优秀的朋友们。还是要多多谢谢实验室里的学长们,还有我的队友们,都给了我很大的帮助。(顺便还要感谢一下学校,有一说一有的长途旅行费要是不能报销真的是要爆金币了。

​如果再给我一次机会,我当然不会后悔选择在大学参加算法竞赛。也许他不能给我的实际生活中带来什么好处。但是我觉得这是一次足够有趣的经历。


标签:赛季,竞赛,比赛,学长,生涯,算法,成绩
From: https://www.cnblogs.com/iceyz/p/17583509.html

相关文章

  • 算法学习笔记(28): 筛法
    筛法线性筛杜教筛放在偏序关系\((\Z,|)\)中卷积……如何快速的求\(S(n)=\sum_{i=1}^nf(i)\)。如果能够找到一个函数\(g\):\[\begin{aligned}\sum_{i=1}^n(f*g)(i)&=\sum_{i=1}^n\sum_{d|i}f(\fracid)g(d)\\&=\sum_{d=1}^{n}g(d)\sum_{i......
  • 算法学习笔记(27): 后缀排序
    后缀排序本文做复习用,不宜初学用。开篇膜拜Pecco:算法学习笔记(84):后缀数组-知乎(zhihu.com)有些时候,其实\(O(n\log^2n)\)的排序也挺好。又短又简单。其中\(rk[i]\)表示从第\(i\)个字符开始的后缀的排名,\(sa[i]\)表示排名为\(i\)的后缀开始的位置。#includ......
  • 算法练习-day32
    动态规划62.不同路径题意:一个机器人位于一个mxn 网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?实例:思路:本题我们已知机器人只能走右和下两种方向,因此......
  • 代码随想录算法训练营第一天| LeetCode 704. 二分查找、LeetCode 27. 移除元素
    704.二分查找    题目链接:https://leetcode.cn/problems/binary-search/   视频链接:https://www.bilibili.com/video/BV1fA4y1o715     文章讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html    卡哥的题目建......
  • Google tile 和 TMS 的索引算法
    Googletile和TMS的索引算法TMS是tilemapservice的缩写,是一种瓦片地图服务,也称之为WMTS(webmaptileservice),具体的标准可以见OGC网站。TMS的算法很简单,就是把投影后的世界地图按照层级进行四叉树(待验证)切割,切割后的瓦片数量随层级呈金字塔型,数量和层级关系如下表所示: 对......
  • kmp算法的个人理解
    最长前后缀:假设有一段字符串:"aabaa"则这段字符串的前缀有:aaaaabaaba后缀:aaabaaabaa求最长公共前后缀的方法:找到前缀和后缀中相同的字符串:aaa其中最长的字符串为aa则"aabaa"这个字符串的最长公共前后缀为aaaa其长度为2按照以上的方式逐个计算"aabaa"中的每个子字符串得到......
  • 算法刷题笔记--并查集的运用
    1、题目描述:一个城市中有两个犯罪团伙A和B,你需要帮助警察判断任意两起案件是否是同一个犯罪团伙所为,警察所获得的信息是有限的。假设现在有N起案件(N<=100000),编号为1到N,每起案件由团伙A或团伙B所为。你将按时间顺序获得M条信息(M<=100000),这些信息分为两类:D[a][b]其中[a]和[b]表示两......
  • 算法学习--并查集相关知识及例题
    一、并查集的定义二、基本操作1、初始化一开始,每个元素都是独立的集合#include<iostream>usingnamespacestd;constintmaxN=1000;intfather[maxN];intmain(){for(inti=1;i<=maxN;i++){father[i]=i;}return0;}2、查找递推版本://返......
  • 一道简单的算法题
    ///<summary>///字符串str1与str2,若str1中的各个字符经过重排后能形成str2,则返回true。///str1="sawsdfdfalsraodf";///str2="world";///rearrange(str1,str2)->true;//////提示:检查str1中的各个字符的字符数是否大于str2各个字符的字符数即可///</summary>......
  • Vue中的虚拟DOM和Diff算法
    一、虚拟DOM1.什么是虚拟DOM?一个用来表示真实DOM节点的JS对象,主要包含标签名tag、属性attrs和子元素对象children属性等。代码示例如下:<divclass="contain"id="baseNo"><h4class="item">标题</h4><pclass="item">段落内容</p>&......