娄凯强的博客 Graduate student at Jiangnan University

蓝桥杯python组备赛指南

2024-05-13
娄凯强


0基础备赛蓝桥杯指南,旨在为准备参加蓝桥杯的学弟学妹们提供帮助。

前言

最近结束了比赛,我对比赛的过程进行了详细的复盘,并计划撰写一篇文章。这篇文章旨在为准备参加蓝桥杯的学弟学妹们提供帮助,我希望我的文章和笔记能对你们有所裨益。

我觉得我应该算是很普通的学生,python基础基本为0,因此这篇文章的适用对象应该是大部分普通人。对于这个比赛来讲,首先花几天时间基础知识掌握以后,就可以开始刷题了,从题目中总结知识。

蓝桥杯有很多赛道,加上每个人的目标不同,所需要付出的努力也不同。不过我觉得最重要的还是把前几道题拿到手,在此基础上,如果还学有余力,可以去体系化再学学难点。那么个人认为按照重要程度,知识点的排序应该是:

  • 模拟(至少刷题100道)
  • 排序
  • 贪心
  • 二分
  • 搜索(DFS、BFS)
  • 动态规划
  • 前缀和与差分
  • 并查集
  • 简单数论(排列组合、质因子分解、二项式定理等)

个人觉得把这些掌握,省一已经足够了,也需要至少4个月以上的时间。剩余的也就是后面的几道题了,也是难点,性价比没那么高,需要系统地学习数据结构与算法,比如:

  • 图论(最小生成树、图的连通性问题、欧拉回路、DFS序、网络流等)
  • 数论(生成函数、莫比乌斯反演等)
  • 高级字符串(拓展kmp、AC自动机、后缀自动机等)

刷题网站

  1. 官网题库 题库 - 蓝桥云课

  2. C语言网(不是只能刷C语言,题目均支持C++、python、JAVA提交) 编程入门题库_蓝桥杯ACM在线编程训练 - C语言网

  3. 洛谷 洛谷

  4. AcWing 题库 - AcWing

idle操作

按照官网文件来看,python编辑器只能用idle,相比pycharm 和 vscode 体验肯定差远了,但是还是要做充分的准备。(我当时的考点是已经安装了vscode,但是具体还是要视考点情况,因此还是要学一下idle的)

快捷键 功能
alt+/ 代码补全(前面出现过的变量或函数)
alt+p 上一次输入
alt+n 下一次输入
alt+3 批量代码注释
alt+4 批量取消代码注释
ctrl+[ 左移4个字符(多行适用)
ctrl+] 右移4个字符(多行适用)
tab 代码补全(提前在idlelib\config-extensions.def修改弹出时间)
enter+ctrl+D 结束多行输入
ctrl+z 撤销上次输入
ctrl+shift+z 反撤销上次输入

常用标准库

比赛只能用自带的标准库,所以像numpy这种扩展库肯定用不了的,下面列出了一些常用的标准库:

math

  • 数学常数

math.e:自然常数e的值,约等于2.71828

math.pi:圆周率π,约等于3.1415926

  • 数学函数

math.sqrt(x):返回 x 的平方根。

math.pow(x, y):返回 x 的 y 次方。

math.exp(x):返回 e 的 x 次方。

math.log(x, base=math.e):返回 x 的对数。base 参数为对数的底数,默认为自然对数 e。

math.sin(x)、math.cos(x)、math.tan(x):返回 x 的正弦、余弦和正切值。

math.asin(x)、math.acos(x)、math.atan(x):返回 x 的反正弦、反余弦和反正切值。

  • 数值操作

math.ceil(x):返回不小于 x 的最小整数。

math.floor(x):返回不大于 x 的最大整数。

math.trunc(x):返回 x 的整数部分。

math.modf(x):返回 x 的小数部分和整数部分,以元组形式返回。

math.fabs(x):返回 x 的绝对值。

math.factorial(x):返回 x 的阶乘。

math.gcd(a, b):返回 a 和 b 的最大公约数。

datetime

import datetime
a=datetime.datetime.now()
b=datetime.date.today()
c=datetime.date(2024,2,23)
d=c+datetime.timedelta(days=1)
print(a)
print(b)
print(c)
print(d)
输出
2024-05-13 16:01:49.449062
2024-05-13
2024-02-23
2024-02-24

还有itertools、calendar等,考虑到文章的易读性,很多知识还在笔记里。相信站在我的肩膀上,你能更快地实现目标,笔记获取地址(笔记全部是自己整理的,请尊重别人的劳动成果,低偿,一杯奶茶钱不到,想白嫖的就算啦~): 蓝桥杯python组备赛笔记(超详细版)

常见Q&A

  1. 赛道应该选择C++、Java还是python啊? 如果都没学过,只学过c语言,那么建议还是python或C++,其余的,肯定是报自己擅长的啦。

  2. 一般准备多久能拿省三或省二?拿奖外 别的收获? 我个人觉得无论是研究生组或A组的话,从0开始至少需要2个月左右的时间,而且是每天都学,其余的BC组应该1个月左右。蓝桥杯奖项设置是:省一(10%)、省二(20%)、省三(30%),所以努力2个月加个综测分应该还是比较划算的,最重要的是在这个过程中,对于一门编程语言的入门,会学到很多东西。大多数人内驱力还是比较弱的,相比没有竞赛的压力的自学编程语言,报名一个编程比赛 后的自学更有动力,自己也更自律!!!

  3. 刷题越刷越觉得自己是个废物,咋办? 其实这也是我的真实感受,刷一个新的专题,自己就会严重受挫,现在看来,可能学习的过程就不是那么舒服的。但是李笑来老师告诉过我:

一切都是心理建设

因此,自己需要及时地钝感,哪怕是一道题,安慰自己说:搞明白都是巨大的提升;每一部分的都要练透。我也经常对自己说:学习任何东西都是需要耐心的,也是孤独寂寞的,但是挺过去,学会后自己的世界竟然有所不同。相信我,你并不孤独!!!


Location:江南大学,无锡,中国 Date: 2024/05/13


Comments

Content