2021年第十二届蓝桥杯省赛+国三C/C++B组参赛经历分享

目录

一些流水账

备赛总结

语言选择

一些问题

牢骚


最近蓝桥杯报名又开始了,先预祝家人们能取得好成绩~

一些流水账

按照惯例,先简单地自我介绍一下:本人就读于西南某不知名双非院校+计算机弱校(不是凡尔赛!),专业为计科,参赛时为大二下学期。大二上学期学过数据结构,学得还行,但之前从来没有接触过算法比赛。我是从大二寒假才开始准备的,当时参加了学校的培训小队,队长每天会给我们发一些蓝桥杯的真题,或者是leetcode上一些有代表性的题,让我们当天做完并把运行截图发在QQ群里。不过毕竟寒假嘛,自己也会时不时摸摸鱼。有时候兴致来了就会在leetcode上自己多刷几道,或者看看经典的紫皮书(就是《算法竞赛入门经典》第二版),偶尔也会在B站上刷刷算法讲解视频。总之寒假就这么蹉跎过去了。

开学后由于课程较多,队伍也不会天天布置任务了,不过大致会保证两天刷一道题,也大概会保证每半个月举办一体线下讨论会或者集中解题训练(2小时写4道题)。或许是因为寒假有点划水,第一次线下训练4道简单题我只AC了两道……后来我认为自己不能再这么懒下去了,于是乎我会在水课或者是不感兴趣的课坐在教室最后一排敲代码、看讲解。没有课的时候也会在各大OJ平台刷刷题,或者看看紫皮书。后来3月份的时候参加了学校的天梯赛选拔赛,运气有点好,成功进入了天梯赛校队(不过这是另外一个话题了hhhhhhhh)

很快就到了4月18号,也就是蓝桥杯初赛的时间。在比赛前一周我基本没有再刷新题,只是反复地把历届真题和做过的题做上几遍,记住一些常考的算法和思想。实不相瞒,第一次参加算法比赛还是很紧张的,很多规矩都不是很太懂,当时还是在老师的帮忙下才进入比赛系统的。在考场和私底下心态还是有很大的不同,我记得当时做填空第二题时人特别紧张,明明很简单的一道题,我愣是把题目意思理解错了,浪费了十多分钟。不过等比赛过了1个小时差不多也进入状态了。做完的情况大致如下:填空题我应该全对(或者错一道),大题F题AC,剩下的题都在骗分,其中GHI3道题骗的分稍微多一些,J题估计就能得个一两分,总分估计能有100多分吧(满分150)。

过了一周多几天后,初赛成绩出来了,我居然是省一,而且在学校内还是排在比较靠前的位置!说实话当时十分出乎我意料,我一直估计的是拿个省二冲一下省一。这给了我极大的信心。后来我基本还是按照原先的方式备赛,顺便再看看高级一点的算法。不过由于当时5月人很忙,我在同时准备软考、软件杯和蓝桥杯,而且还在赶之前落下的实验报告(这告诉我们平时不要太浪TAT),这导致我蓝桥杯的复习进展被打乱了。

然后就浑浑噩噩到了6月5号的决赛现场。今年的决赛题目很有意思,如果只是看题目的话会觉得很简单,甚至有些题乍一看还没有初赛难,但是有趣就有趣在数据范围开得非常得大,有的题甚至都开到了2的18次方,怕是要成大数据比赛哦。个人认为今年决赛题还是很有区分度的,能保证只会暴力法的人拿到少量的分(比如我(捂脸)),会一点优化的人再拿到一部分分数,精通数据结构和算法的人能够AC。顺便吐槽一下,最后一道题居然玩起了野兽先辈的梗,果然出题人人均HOMO(悲)。最后的做题情况大致为:选择题错最后一个,大题除了第一题AC,还有中间一两道题优化了一下估计能拿到一半的分,剩下基本全是暴力。总分估计只有70多分吧。

过了似乎一周成绩就出来了,我得了国三,但是离国二也没有差多少名,要是我之前认真一些的话应该还是有望冲一冲国二的hhhhhhhhhh不过第一次参加算法比赛我已经很满意了

备赛总结

虽然蓝桥杯向来被大家称为“暴力杯”,但是今年的初赛如果仅仅只会暴力的话,肯定是拿不了省一的。这次初赛考了卡精度、动态规划(还考了三次)、线段树,相比往届已经难了不少,而决赛与往届相比风格迥异(详见上文)。但是万变不离其宗,考的都是大纲上的内容。这里有两份dalao总结的知识点,可以参考参考:

蓝桥杯2021 本科B组考点整理_枚举星星-CSDN博客

 备战蓝桥杯算法整合_Anterior_condyle的博客-CSDN博客

另外,也要多熟悉熟悉C++的STL,虽然考场会提供C++的API,但是查询API会浪费时间且打断做题思路,同时也要多注意C++的一些语法技巧和语法坑。还要多熟悉熟悉IDE,我当时使用的大赛允许的codeblocks,学会一些快捷键,提高敲代码的效率。

然后就是要多刷真题和经典题

2021年第十二届蓝桥杯省赛+国三C/C++B组参赛经历分享_第1张图片

这些差不多就是整个备赛期间在本地做过的题吧(不包括在OJ平台刷过的题),如果包括在OJ上刷过的题,总共估计有100多道吧。我这里并不推荐题海战术,只要你能把做过的题吃透,进决赛是没有问题的。这里推荐几个OJ平台吧:leetcode、virtual judge、洛谷、new online judge、C语言网,如果学校购买了蓝桥VIP的话,也可以在官网题库刷真题。

最后就是一定要注意代码规范,记得适量敲一些注释,不然过个半个多小时可能都看不懂自己写了些啥(笑)

语言选择

我当时在C/C++和Java中纠结了很久,虽然Java的eclipse要比codeblocks和dev cpp舒服一万倍,但是最后我还是选择了C/C++,以下是我总结的原因:

  1. C/C++是大多数计算机学子的第一门语言,会更熟悉一些。我是大二上学的Java,虽然自认为学得不错,但是没有在算法领域实战过。
  2. 由于第一点,导致C/C++组人数是最多的,获奖的名额也会多很多。
  3. 由于一二点,导致C/C++的混子也是最多的,很多人报了比赛后发现算法有门槛就半途而弃了,有的人不熟悉比赛规则导致自己拿不到分,而且这样的人还不少。
  4. 作为接近底层的高级语言,C/C++十分灵活,dalao可以随心所欲地对代码进行各种骚操作以达到优化的目的。

我印象里初赛获奖比例很高,凡是参加比赛的人,80%都能拿到名次,所以千万不要放弃!

一些问题

Q:比赛期间能上厕所吗?

A:当然可以!

Q:能使用C++ 11吗?

A:可以。提交代码时会让你选择C++版本,目前最高是11。因此foreach、auto、列表初始化等一些特性请尽情使用!

Q:可以不写return 0吗?

A:虽然C++组委会规定可以,但是比赛大纲要求是要写的,还是不要省这一行代码了。

Q:可以带纸笔吗?

A:我们考点可以,其他考点不太清楚,最好去问一下。

Q:可以开启O2优化吗?

A:我记得是不行的,还是老老实实优化代码逻辑吧(笑)。

牢骚

该死的疫情!害得我没法去北京公费旅游!气死了气死了气死了气死了气死了气死了气死了气死了气死了!!!!!!!!!

你可能感兴趣的:(c++,算法,acm竞赛)