写这篇文章的原因
主要是因为学校内有许多学弟学妹询问有关蓝桥杯的事情,就以此篇文章进行回应,也同时给自己今年蓝桥杯进行回顾与总结。
对比结果,大致满足预期,虽然最后距离国二差了一点,国赛发挥失常和许多原因都相关,比如学校课程安排太满,智能车比赛,期末考试等等,包括自己心态上和知识上还需要一些锻炼。
蓝桥杯大赛介绍
蓝桥杯大赛是一场严谨的个人闭卷竞赛,采用 OI 赛制,严禁携带任何资料。奖项设置如下:
- 省一(10%)
- 省二(20%)
- 省三(30%)
赛前准备
官方规定的环境是 IDLE(Python 版),与记事本类似。建议在比赛前两周适应这种环境。IDLE 的配置可以参考 这篇文章。
个人情况
我在 2023 年 11 月报名,11 月至 1 月底简单了解了比赛,但并未开始正式备赛。正式备赛是在 2024 年 1 月底/2 月初开始,至省赛(2024 年 4 月 13 日),共准备了约两个月。以下是我的学习路线和看法,希望对大家有所帮助。
下面是我官网的刷题情况
蓝桥杯题型分布
下面是我那一年大纲,仅截了部分图。
按题型分布
我们这一届共有八道题:
- 两道填空题(考察计算机基础知识和简单数学计算)
- 六道程序设计题(重点和难点)
通常,第一题和第 3 或第 4 题较简单,第二道填空题可能比某些程序题更难。总分为 100 分,我大概得了 40 多分,排在广东省 30-40 名左右。
按知识点分布
我将比赛题型分为以下四种:
- 语法/数学等基础知识题
- 数据结构、算法题
- 思维题
- 偏题、超纲题
常考的知识点包括:
- BFS/DFS
- DP(动态规划)
- 进制转换
- 最短路
- 二分查找
- 贪心算法
- 模拟
备赛路线
我的备赛主线是蓝桥杯省赛无忧班的知识点,结合官方的知识点大纲。无忧班老师讲解水平不一,遇到讲得不好的知识点需要自行查找资源。
各类题型知识点的准备方法
语法层面
建议准备三种资源渠道(视频、网站、书籍):
- 视频:在 B 站寻找适合的课程。
- 网站:推荐菜鸟教程,帮助深入学习。
- 书籍:使用小甲鱼的《0 基础入门》作为补充。
这里给大家避一下坑,学会语法不要一直跟着视频敲,跟着敲一两遍就行了,关键是你自己得应用起来,你可以寻找一些简单的题目、项目或者说一些简单的情景,就比如说打印一个99乘法表等。语法的关键在于熟悉,多看多写很快就能熟悉。
算法和数据结构
资源渠道与语法层面类似,但需仔细选择。视频中质量高、可视化好的课程能帮助理解抽象概念。对于数据结构应用在比赛中的问题,建议通过以下方式深入理解:
- 考虑题目时,思考用哪个数据结构最好。
- 设计数据结构时,思考为何这样设计。
一些推荐的网站:
一些我推荐的优质博主:
思维题
这部分主要靠自己多思考,不依赖题解。写不出来时,可以参考优秀题解的思路,找到差距。
偏题
若时间不足,可以不深究。多数偏题涉及复杂的数据结构或较难的数学算法。
如何更好地做题?
- 要总结自己的一套模版(常见的算法,根据题目微调)
- 记住常见的函数和算法库
- 首先是要把输入输出搞明白,理解题意,可以多举几个例子。
- 不断换视角换做法做同一道题,这道题是不是还可以这样做…,以及和出题人身份的转变,如果我出题会怎么出,出题人想告诉我什么,这道题怎么扩展到其他题,这几道题有什么共性,又有什么不同?
- 和优秀人的对比,别人为什么这样想,我和他们的差距在哪里?思维上?语法基础?
输出与反馈
- 通过技术博客、笔记、题解记录和精炼知识点。
- 交流和定期复盘,评估学习进度。
- 参加平时的练习比赛,如算法双周赛。
比赛trick
- 暴力骗分
很多题目的数据范围都会留20%的样例让暴力算法通过,如果你的暴力写的有技巧,也许可以通过30%甚至40%的测试点。
使用多重for循环,或者打印一些样例的答案,也可以用dfs直接搜索 - 对拍
蓝桥的OI赛制意味着程序不能在线提交并立即评测(可以在本地测试运行,会给编译器),而是等待考试结束后将代码统一提交评测后出结果。
所以对于选手来说,自己检验自己的程序正确性非常重要,这个操作就叫做对拍,也就是自己造数据(一般是足够多的随机数据),然后用正确的暴力算法算出结果(可能花费较长时间),再用自己的算法跑一下,看看结果是否一致。 - 找规律打表
有些题目会有规律,可以写个稍微复杂点的代码跑久一点 - 比赛时可以查阅帮助文档,忘记了可以上去查询《有些地方是可以查询中文文档的,我们学校就可以,只要不作弊,大部分是只能英文离线文档》
- 低级错误
- 记得特别情况进行特殊处理,如边界处
- 数据类型搞对
- 数组越界
- 变量名错误
- 逻辑错误
写在最后
学习过程可能不轻松,需要不断打破认知,重新认识和塑造自己。每做出一道难题,都会带来莫大的喜悦。
相信相信的力量!