xcpc生涯总结

XCPC

​ 作为一名大二才接触算法竞赛,打了一年就退役的选手,我的XCPC生涯是如此短暂….

​ 由于一开始是大数据专业的,首先掌握的语言也是Python而不是C语言。因此在大一下学期我萌生了转专业的想法之后,我开始去自学C语言,看的是北大郭炜老师的课程:

程序设计与算法(一)C语言程序设计

程序设计与算法(二)算法基础

程序设计与算法(三)C++面向对象程序设计

同时,他配套的POJ(Peking University Online Judge)上面的习题我也带着写完了,同时我也上了郭炜老师的Python的相关课程。这也使得我从一位编程小白变成了一位会写简单分支循环语句的新生,同时也以优秀的等级通过了计算机二级考试。

然后就到了五月,我感觉这个写编程题还蛮有意思的,我就去洛谷上买了一本《深入浅出程序设计竞赛》平时带着写一写,恰好五月底我校正好举办了NUISTCPC(校程序设计竞赛),我当时报着刚学完C语言和刷完深基搜索后的去试一试的心态,结果在迅速签完到之后三个小时罚坐后搞出来了一道贪心题,打了一个二十多的好成绩,这也让身为菜鸟的我感到惊奇。也正好在之后一次偶然的讲座中我听到了来自SYF学长关于ACM-ICPC的介绍后,产生了浓厚的兴趣。

在经历过一个多月的期末月,即2021.7.12考完最后一门后,我发现我已经把GPA刷到了足以使我成功转专业的分数,我尝试开始在网上找ACM-ICPC的入门路线。当然这过程中也走了很多弯弯绕绕的路,知道我在学习基础动态规划模型时在搜“背包九讲”时在Bilibili上面搜到了北大闫学灿老师的视频,我了解到了Acwing,并一口气报名了算法基础课和算法提高课。那个暑假我也留校开始学习。由于之前刷完过一本洛谷的《深基》,所以我很快就刷完了基础课(没记错的话好像是两周不到),然后感觉蛮简单的,我就开始刷提高课了。

刷提高课的收获还是非常多的,各种之前并没有真正掌握的算法随着刷题的进行,开始逐渐熟悉了起来。大概是刷了一个半月我把提高可百分之九十的算法都掌握了。刷提高课的同时,我还进入了Acwing比较有名的提高二群,在里面认识了来自各个学校的Acmer,有:

现在在重邮的光头哥Bsqaq,安徽工程的啾啾,武昌理工的银牌佬Duck_沙烬,新疆大学的临渊,来自哥大,打进WF的然然,齐鲁工业大学的L神,来自广西的OI爷爽gai,山东理工的那个队名巨长的队伍的ACMer凌乱之风,还有酸菜鱼佬,湖南理工长途,河南大学的程佬,深圳大学喵喵子,湖南科技黄宇轩,南昌理工的lqgglqmm,吉林大学的速RitszZ……

虽然大家刚进群都是菜菜的(除了个别佬),但是经过了一年的训练也都拿到了牌子。

也是在暑假里我开始接触到了AtcoderCodeforces这两个竞争性编程训练平台,加上之后接触到的出题偏构造和DP的Codechef,我主要的线上比赛网站就是这些。

我有一个非常不好的习惯,那就是喜欢开小号。一旦感觉自己状态有点不太对(比如有点困),我就会去打小号,但事实证明这样子并不好,不仅严重拖慢了上分速度(以至于我现在只有紫名),也会拖慢比赛适应能力。

我的所有CF号

总之,对于掌握了知识点后如何快速得提升自己的代码运用水平并提升自己得思维能力,多多刷Atcoder和Codeforces是一个非常高效得做法。

在大一升大二暑假之后,我发现常常自己CF只能做到C题,D难出。学的算法也并不足够满足所有的XCPC知识,于是九月份我接触到了牛客算法平台以及牛客的课程。因此大二上学期,还没有进队,没有比赛打的我的主要任务就是刷完牛客竞赛的课程和配套习题。这一段时间对于我处理常见模型,常规算法题的能力提升是最明显的,也多亏了雨巨的清晰的讲述,对于小白来说非常的友好。在这之后我就基本告别Acwing这个入门级平台,开始使用牛客这个更加专业的竞赛平台了。刷题量也随着陡增,大概是两个月600+的题目。主要集中在中档题。MyNowcoder.在处理完这些常见算法模型之后我的CF到了蓝名1700左右的水平,能保证我在30~50分钟内快速出完CF的ABC题,偶尔能写出来CF的D题。紧接着就是寒假的CF训练,那段时间我也找到了我的队友WZYGRD,寒假结束之后我们也开始逐渐合练区域赛。此时的我CF大概是1700-1800左右徘徊。反思了一下应该是我学习不够深入导致的。因为比别人晚一年接触XCPC,所以相应的知识点的学习我给自己设置的时间要短很多,这样才能保证快速覆盖一定量的面,但是深度还是不够的。因此大二下学期,在尽量满足课内需求的同时我还需要加深各个算法的应用——VP区域赛就是一个很好的方法,同时我也开始Virtual Participate CF之前的场次。终于到了快要放暑假的啥时候我的CF成功到达了紫名。紧接着就是更多紫名的小号了…(非常不建议开小号)

大二下学期我也开始有比赛打了。一个是昆明区域赛,这个在我之前的博客中有提到,也是之前多出来的名额,但是我打的并不好,最后我们队的模拟题没写出来也导致铁首。这让我感觉到之后的重重困难。紧接着就是JSCPC(CCPC 江苏省省赛)。江苏省省赛是我认为的全中国各个赛区难度相对最大的省赛了.还好上一场打铁并没有怎么影响我们,省赛打了一个银首,差一点金,也结束了这个赛季。

紧接着就是期末月后的多校联赛。多校我们打的一般般,排名也在200左右。大致是保铜争银的定位。我暑假出现的一个失误点在于我去学习了一些字符串进阶算法和计算几何算法,但是实际上这些知识点对我们队伍来说用处并不大。不过就当作知识点学习了。

2022-2023新赛季的时间特别短暂,我们队伍一共有三场比赛任务,队长特地选在了比较靠前,三周连续的,以便我们能够快速打完后准备期末。所以11.26号我就打完了所有比赛,比赛后的小作文我一律没写,因为大部分比赛都是差强人意,仅仅比预估的最坏结果要好一点。由于CCPC广州的卡题,到了三个小时我才把博弈论给想出来,因为我们又铁了。不过此时倒也没有什么心理压力了,因此紧接着下一周的ICPC合肥站我们还是比较轻松的,最终由于J题奇幻的错误勘误卡了我们半个多小时,最后没有调出来J,导致我们距离银牌线只有几名,遗憾拿铜。ICPC济南站也是同样的,做出来五题,但是因为罚时不占优势,在铜首区拿了一块铜牌。

我觉得如果我大一就接触ACM的话应该通过两年的时间拿到银牌不成问题。但是也最后两场比赛没有抓住机会+运气不好只拿到了铜牌。不过也算是我曾经参加算法竞赛的凭证了吧!