【参赛经验&心得】

先介绍一下自身情况,我参加的是C/C++B组,所在的赛区是江苏赛区,参加过三次蓝桥杯,最好的成绩是国三,没错我就是个小辣鸡。

蓝桥杯省赛题目一般有结果填空、代码填空和程序题三种题型,但是第十届已经没有了代码填空。填空题只要结果,所以你只要能用不违法的手段把结果弄出来都是ok的,一般也只有最后一个填空题会为难一下,其他都是很容易得出答案的。不过从历年的真题中我们也可以看到填空题的题数在减少,程序题的题数在增加。
既然程序题的题数在增加,那么我们也得重视起来,所以自然不能什么算法都不会就上考场了,题解的表格里面我基本上都标注了相关算法,可以看到蓝桥杯最常考的还是搜索算法,比如dfs和bfs,(像枚举、递归这些太基础的算法我就先不提了)我同学常戏称,蓝桥杯只要会暴力和搜索就能拿奖hhhhh
所以基本的算法还是要会的,可以重点练习一下搜索算法。学有余力的同学就可以继续研究难度大一点的算法,比如动态规划,个人感觉现在蓝桥杯题里面动态规划思想的比例也在增加。我一直觉得蓝桥杯的坑点在于你提交之后得不到回应,就是你交了代码后是不知道你有没有AC的,所以交之前一定要注意检查细节。程序题是按照过的测试样例的百分比来给分的,如果你是在想不出完美的AC方案的话,也可以先解决一部分的数据规模,如果你实在不太会这题,也可以先暴力,祈求能过一点点测试样例,反正总比空着好啦~
最后说一下时间问题吧,整个比赛是4个小时,建议先把题目都浏览一遍,因为虽然题目是按照难度梯度来的,但是你不知道自己会突然在哪题卡死,也不知道自己会突然在哪题灵光一闪。我就经常因为和一题死磕,导致后面会做的题来不及写完QAQ

有小伙伴担心赛区不同,从而我说的经验没有参考价值,但其实我想说不是这样的。我自己刚开始参加比赛的时候,也有在网上搜过很多相关信息,别的赛区情况都差不多。我个人认为竞赛这种事,他是一个层次面上的比赛,虽然有少数上一层次和下一层次的人混在里面,但是大部分人还是水平相当的,不然比赛咋整你说是不是?而且由于蓝桥杯的坑点,提交之后你不知道自己的代码对错,还不能带算法模板这类纸质材料进去,所以就算有的同学编程比较拿手,也没有绝对的优势,当然很优秀的除外。做过真题的小伙伴也看得出来蓝桥杯的题目难度是有在逐年增加的,而且编程题的比例也在增加,我前面说做好填空题就行,但是现在有个别填空题也不那么好做,可是编程题也不会让你一个都做不了啊,所以再次总结一下就是,做好填空题,编程题竟可能多的拿分。说到真题的变化,还有一点想提的是,个人感觉蓝桥杯涉及的算法也在变多,省赛重基础算法,国赛重高级算法,虽然基础算法和高级算法这两个范围非常的广,但是有意统计一下里面出现的具体算法和频率,也可以知道基本上考的就那么几个,但是近年来也逐渐多了一些没有考过,我是说多了一些,不要紧张,还是占少数的,这里提这一点的原因是想让学有余力并且想拿大奖的同学,后期刷题的时候可以拓宽刷题的算法。

【复习建议】

1、初学编程的同学:

这个时候大多数同学都会遇到这样一个状况,看到题目我有一点思路,但是我写不出来,去网上搜了题解,看了都能理解,可是我还是写不出来,这个问题我自己的学弟学妹们也问过我很多次,我自己当年开始时也是这样的。因为刚起步嘛,你此时的编程能力还不足以让你一个人来完成一道题,那不如就大大方方的借鉴别人的呗。先把你能想到的代码写下来,无论多少都先写下来,然后再去参考别人的代码继续写下去。如果看过之后忘记了或者自己卡住了,再回过头看一眼别人的,然后把自己的代码补全。千万不要自己死磕到底,或者完全抄别人的代码(就是屏幕一分为二,一边你的一边别人的,然后抄的得跟练打字似的)!当然也不能觉得这样做一遍,自己就都会了,信不信过几天你就忘了hhhhh
所以呢,过几天之后你还要回过头重复刷。起步的时候,刷题不在与题量多,而在于重复次数。刷个两三遍,差不多就能记牢了,这个时候你写的代码才完全是你的东西啦~

2、第一次参加的同学:

个人觉得蓝桥刚开始准备的时候,还是要先刷真题,了解了解情况。我在题解表格中也列出了每个题目涉及的算法,不难看出常考的算法有枚举(暴力)、递归、贪心、搜索(dfs和bfs)等基础算法,基础算法学起来也不难,多看看多做做就行了。如果时间有限,那么就只刷真题,多刷几遍。如果时间充足,那么刷完真题后,你也大致知道了蓝桥杯常考的算法和自己薄弱的算法,这个时候就可以去别的oj上练专题。

3、第二次参加的同学:

首先呢,不要觉得是第二次参加就托大,这样真的真的很容易滑铁卢,好好准备还是需要的。可以先回顾一遍真题,省赛题不能满足你的话,也可以去刷国赛真题,或者去别的oj上刷题。由于是第二次参加,所以可以适当地让自己多学一些高级算法,当然基础算法也要巩固一下的,不能忘了本嘛~

4、第三次参加的同学:

你都是第三次参加了,是个成熟的选手啦,还要我给建议嘛?开玩笑的啦~
一般第三次参加的同学都是大三生了,这个时候可能还要忙考研考公找工作之类的事情,所以准备时间可能并不是那么充裕,但是前两年的刷题经验应该也积累了不少了,不过就算没有太多时间,也有偶尔抽出一点时间做题,比如一天做个一两题这样的,状态和手感真的很重要!

【考试技巧】

1、平时不太用DEV的同学,考前一定要熟悉一下DEV,比如如何创建文件/工程、如何单步调试等。

2、记住可能要用到的那一堆头文件,当然万能头文件(#include<bits/stdc++.h>)也可以用。

3、能用到函数的地方尽量用函数,比如sort、next_permutation等,省时省力,STL同理。

4、有些题用别的编程语言会更简单,比如Excel(日期问题)、Java(大数问题)等。

5、分析题目的时候可在草稿纸上多涂涂写写,这样思路就容易想出来,同时不要忘记带笔。

6、建议少喝水,可以适当带点食物。

7、结果填空:大多是可以暴力的,也可以借助其他工具得出答案(只要不违反规定),切记要细心,有时间可以换一种方法验证结果,但是一道题不要停留太久的时间,不然会影响后面的程序题。

8、代码填空:一般是递归、找规律等,实在想不出来可以随便试,很容易试对。

9、程序题:


程序题是按照过的测试样例的比例来给分的,如果你实在想不出完美的AC方案的话,也可以先混一部分的分数,这边给大家具体举例子。第九届B组第10题乘积最大,假如你乍一看没什么好的想法,然后做到最后一题一般也没多少时间了嘛,为了抢分,不妨可以就想的简单点。这个题目无非就是给你一堆数字,数字能有什么呢,正负零。直接考虑全正或者全负的情况,这两种简单情况的代码写起来并不复杂吧?后台的测试样例里面不可能都是复杂情况的,一般测试样例也是有梯度的,从简单到难,从普遍情况到极端情况,所以即使你只写了针对简单情况的,你也能拿部分分数。
再比如模拟赛第7题风险度量,一看心想“完了,我还没学过并查集”,那怎么办呢?注意看题目,有一句话叫“如果询问的两点不连通则输出-1”,这句话隐含意义就是后台至少有一组测试样例是不连通的。那与其空着不写,不如你就写个程序输出-1,假如后台有5组测试样例,你也拿到了1/5的分数。


蓝桥比赛系统在你提交了代码之后是看不到结果的,就是不会告诉你是WA了还是有没有超时。通常题目提供的测试样例只有一两组,为了进一步验证自己代码的正确性,可以自己再找几组测试样例测试一下。

P.S. 有同学想知道大概什么时候出省赛结果,我印象里结果出的挺快的,考后两三周的样子。

 

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信