楼主参加了2021年的蓝桥杯算法程序竞赛Python组。 照惯例晒一下证书:
前言:楼主近一年的算法学习还是走了不少弯路的。最开始啃算法竞赛书、自己一股脑刷leetcode题让我心力憔悴,一度想放弃。但后来我找到了更适合蓝桥杯的学习和刷题方式,终于拿到了省一国二的好成绩! 只要好好准备,Python组的省一一点也不难。
本篇经验适合:1.希望参加Python组的同学 2.想参加Java、C++ B组的同学(难度与Python组类似) 3.想系统提升算法能力的同学 4.ACM大佬可以直接退出了、点击就送
总结:1.要总结并背诵基本的算法模板 2.需要一定的训练量,但更追求的是写题质量和理解 3.要刷合适的题(有的明显偏难或者明显是蓝桥杯不考察的类型)
蓝桥杯的赛制:蓝桥杯是按照测试点给分的,假设一个题目有10个测试用例,对了5个就是50%的分。(所以对于一些不会写的题可以用暴力方式骗一些分)
蓝桥杯初赛和复赛都是4小时,一共有10道题目,前5道是填空题,后5道是编程题。填空题你可以用纸笔涂涂画画找规律、也可以用excel、日历或者编程等等找出答案。不过近几年的填空题越来越难用手算模拟,一般都需要写代码完成。
准备蓝桥杯的阶段:1.算法学习阶段 2.刷题阶段 3.考前复习+冲刺阶段
1 算法学习阶段首先,根据不同的专题(数学知识、树、图等知识点)系统学习算法。
有钱的话可以去看网课或者是教程,在这里我推荐两个渠道: acwing网站以及labuladong的算法小抄(以及labuladong的一系列leetcode题解),acwing上的算法基础课很好(但是要钱)。
不想花钱也没事,我根据不同知识点总结出了一套通用Python算法模板,还加入了一些经典题目的笔记和讲解!本人就是通过总结+不断背诵和练习题目获得了最后的好成绩!
回归正题,对于没有系统学习算法经验的新手,我推荐的学习路程如下:
1 3-5天的时间学会Python基础语法(电子书和Python算法笔记可以找我要)
2 看acwing算法基础课视频并用Python完成配套的题目/或者对照着我的Python基本算法模版理解算法知识,并在网站上找到对应题目,把每个知识点刷5-10道题目
蓝桥杯考察的所有算法和数据结构重点:
数据结构:
数组链表哈希表优先队列图并查集线段树重要算法:
二分查找DFS/BFS回溯剪枝记忆化递归动态规划快速幂最小生成树最近公共祖先差分数组… 如果都能学完且熟练掌握,省一必拿下!
2 刷题阶段在上面的算法和我的算法模板都基本掌握之后,就需要大量的刷题了。
第一步要刷的肯定是蓝桥杯Python组历年题(我会整理出资源)
不建议新手一开始就去蓝桥杯官网刷题,那里很多都是Java、C/C++组的压轴题,不仅难度大,还没有题解,也不能看到测试用例。
我推荐的刷历年真题方式: 1 对照着真题的txt或者word格式写题,不需要使用oj
2 限时4小时完成
3 完成后对照着答案+网上的题解思考
4 对于编程题目,不仅仅测试题目中给出的用例,多测试几个来看是否完全正确
如果这个阶段你就能获得60分+,恭喜你,前途一片光明! 没有获得60分+也不要灰心,再多刷一些题,你也没问题哒~
刷完蓝桥杯历年题目之后,这里我推荐acwing、luogu和leetcode三个网站,在上面把树、图、并查集、DFS和BFS、差分算法这些专题的题目都刷透,省一等奖就基本没问题了。
Python算法模板放在我的专栏里了,欢迎订阅~