1. 赛事介绍(针对深大)
- 蓝桥杯是深大的二类竞赛,在计软国一二三保研分别加6,4,2分,国一国二能申请双创一等奖学金,国三能申请双创二等还是三等有点忘了(其实在申请的时候直接申请一等就行了,学院会根据你奖项的实际能申请的奖项给你调整的)。
- 蓝桥杯有很多个组别,有软件组和硬件组,其中软件组针对不同编程语言分组,其中C/C++组人最多,竞争相对较大。JAVA组和Python组人相对较少,竞争可能稍微小一点。软件组会给出编程题进行考察,你提交一份代码,你的代码要根据它的输入给出正确的输出才能拿到对应的分。
- 蓝桥杯是亲民的水赛,非常推荐打。
2. 考试
2.1 形式
OI赛制,即提交代码后看不到代码结果,无法知道自己代码的运行正确样例数。且蓝桥杯不会公开分数,只会公布排名。
2.2 题型与题量
- 填空题:2题。填空题一题5分,两题共10分。
- 编程题:15届省赛编程题已经从8题减少为6题,国赛编程题为8题。编程大题分值分布不定,但是会随着题目的先后顺序递增。
3. 知识
- 语法: 对于C/C++组来说,除了最基本的C/C++语法,你还需要掌握C++的各种常用STL容器,如:vector, map, unordered_map, priority_queue等等。
- 算法: 对于省赛来来说,你只需要掌握基本的算法即可:前缀和,二分,DFS,BFS,贪心,线性动态规划,高精度,Dijkstra等等基础的算法。如果是国赛,那么就需要更多比较高级的算法:树形DP,状压DP等等更高级的DP,线段树,树状数组这样更高级的数据结构,但是对于B组国二而言,其实也并不需要多高级的算法,后面我会分享自己两届国二的复盘经历,可以发现我并没有用到什么高端的算法。此外,蓝桥杯会放出自己的算法考点的考纲,但是个人认为全部掌握的话有点太费劲,下面会给出我个人认为需要熟练掌握的算法。
- 需要熟练掌握的算法(CB组国二): 高精度,二分,前缀和与差分,双指针,并查集,DFS,BFS,Dijkstra,Prim,Kruskal,线性筛,快速幂,求组合数,线性DP,树形DP,记忆化搜索,贪心,LCA,RMQ。
- 需要了解的算法(CB组国二):离散化,Bellman-Ford,SPFA,容斥,区间DP,树状数组。
4. 习题
- 如果你无语法基础:首先练习洛谷的入门语法题或者acwing的语法入门课的习题。
- 如果你无算法基础:首先对算法模板题进行练习,同样可以在洛谷练习,省事的话同理acwing算法基础课。
- 如果你有算法基础:那么直接开始写蓝桥杯的真题,可以在洛谷上筛选难度,由易到难做起。当你的真题都做的差不多后,可以尝试做acwing的每日一题或者力扣也是一个不错的选择。
5. 资料
- 强烈推荐acwing的算法基础课来学习和练习模板,提高课如果有更高追求的同学可以买。acwing的生态非常良好,有大量的讨论和题解。yxc讲的也不错!
- 刷题平台:洛谷,acwing,力扣都是不错的选择。
6. 技巧
蓝桥杯是算部分分的OI赛制,个人推荐打法如下:
- 对于填空题不一定要编程,可以借助电脑上别的工具比如excel。
- 对于编程题,如果你不能很快的想出正解,请一定先把暴力打上,或者你不确定这个是不是正解,我也推荐打暴力。
- 当你把所有题的暴力都打完之后,再去对刚刚没有想出来的正解进行思考优化。
7. 我的比赛复盘
下面会介绍我两届蓝桥杯比赛的战况(CB组),让大家参考省一和国二大概需要做多少题:
7.1 14届省赛
-
填空题:1题,第二题不会做。
-
编程题:第三题正解,第四题不会做(当时功力较低,简单的回溯没看出来),第五题暴力,第六题暴力,第七题暴力,第八题正解,第九题暴力,第十题零分。
-
结果:省一中上游。
7.2 14届国赛
-
填空题:2题。
-
编程题:第三题正解,第四题正解,第五题暴力,第六题暴力,第七题正解,第八题暴力,第九题暴力,第十题零分。
-
结果:我记得好像是国二中游差不多。
7.3 15届省赛
- 填空题:1题,第二题不会做。
- 编程题:第三题暴力(但是也能得比较高的分),第四题暴力(是个高精度,但是我怕敲错直接暴力了),第五题暴力,第六题正解,第七题错解(当时一眼贪心,结果贪心是错的,不过应该可以过掉一些样例),第八题错解(题目读错了,我说数据范围怎么那么小,但是看对感觉应该可以正解)。
- 结果:省一中上游。
7.4 15届国赛
- 填空题:1题,第二题感觉会做没做出来。
- 编程题:第三题暴力,第四题正解,第五题正解,第六题暴力,第七题正解,第八题暴力,第九题暴力,第十题暴力。
- 结果:国二中下游。
可以看到,我的大部分题目都是暴力,只有少部分是正解,这就意味着其实并不需要多么高级的算法也能拿到国二。