文章目录
- 前言
- 刷题网站
- idle操作
- VScode
- 常用标准库
- math
- datetime
- 常见Q&A
前言
最近结束了比赛,我对比赛的过程进行了详细的复盘,并计划撰写一篇文章。这篇文章旨在为准备参加蓝桥杯的学弟学妹们提供帮助,我希望我的文章和笔记能对你们有所裨益。
我觉得我应该算是很普通的学生,python基础基本为0,因此这篇文章的适用对象应该是大部分普通人。对于这个比赛来讲,首先花几天时间基础知识掌握以后,就可以开始刷题了,从题目中总结知识。
蓝桥杯有很多赛道,加上每个人的目标不同,所需要付出的努力也不同。不过我觉得最重要的还是把前几道题拿到手,在此基础上,如果还学有余力,可以去体系化再学学难点。那么个人认为按照重要程度,知识点的排序应该是:
- 模拟(至少刷题100道)
- 排序
- 贪心
- 二分
- 搜索(DFS、BFS)
- 动态规划
- 前缀和与差分
- 并查集
- 简单数论(排列组合、质因子分解、二项式定理等)
个人觉得把这些掌握,省一已经足够了,也需要至少4个月以上的时间。剩余的也就是后面的几道题了,也是难点,性价比没那么高,需要系统地学习数据结构与算法,比如:
- 图论(最小生成树、图的连通性问题、欧拉回路、DFS序、网络流等)
- 数论(生成函数、莫比乌斯反演等)
- 高级字符串(拓展kmp、AC自动机、后缀自动机等)
刷题网站
-
官网题库
题库 - 蓝桥云课 -
C语言网(不是只能刷C语言,题目均支持C++、python、JAVA提交)
编程入门题库_蓝桥杯ACM在线编程训练 - C语言网 -
洛谷
洛谷 -
AcWing
题库 - AcWing
idle操作
按照官网文件来看,python编辑器只能用idle,相比pycharm 和 vscode 体验肯定差远了,但是还是要做充分的准备。(我当时的考点是已经安装了vscode,但是具体还是要视考点情况,因此还是要学一下idle的)
快捷键 | 功能 |
---|---|
alt+/ | 代码补全(前面出现过的变量或函数) |
alt+p | 上一次输入 |
alt+n | 下一次输入 |
alt+3 | 批量代码注释 |
alt+4 | 批量取消代码注释 |
ctrl+[ | 左移4个字符(多行适用) |
ctrl+] | 右移4个字符(多行适用) |
tab | 代码补全(提前在idlelib\修改弹出时间) |
enter+ctrl+D | 结束多行输入 |
ctrl+z | 撤销上次输入 |
ctrl+shift+z | 反撤销上次输入 |
VScode
功能 | 快捷键 |
---|---|
多光标选中 | Ctrl + D:选择下一个相同单词 |
Ctrl + Alt + Down:下移光标并添加新的光标 | |
Ctrl + Alt + Up:上移光标并添加新的光标 | |
注释/取消注释 | Ctrl + /:切换单行注释 |
Shift + Alt + A:切换块注释 | |
代码缩进 | Ctrl + [:左缩进 |
Ctrl + ]:右缩进 | |
代码块/函数导航 | Ctrl + Shift + O:打开符号导航 |
Ctrl + G:跳转到特定行号 | |
Alt + 左箭头:跳转到上一个光标位置(跳过整个变量名称) | |
Alt + 右箭头:跳转到下一个光标位置(跳过整个变量名称) | |
选中和剪切 | Ctrl + Shift + L:选中所有匹配内容 |
Ctrl + Shift + ↑ / ↓:上下移动行 | |
Ctrl + X:剪切选中的文本 | |
Ctrl + C:复制选中的文本 | |
Ctrl + V:粘贴剪切板中的内容 | |
查找和替换 | Ctrl + F:查找 |
Ctrl + H:查找并替换 | |
Ctrl + Shift + F:全局查找 | |
代码补全和建议 | Ctrl + Space:触发代码补全 |
Ctrl + Shift + Space:查看参数提示 | |
Ctrl + F5:运行当前文件 | |
F5:开始调试 | |
文件管理和版本控制 | Ctrl + N:新建文件 |
Ctrl + S:保存文件 | |
Ctrl + Shift + S:另存为 | |
Ctrl + Z:撤销 | |
Ctrl + Shift + Z / Ctrl + Y:重做 | |
分屏显示 | **Ctrl +\ **:分割编辑器窗口 |
常用标准库
比赛只能用自带的标准库,所以像numpy这种扩展库肯定用不了的,下面列出了一些常用的标准库:
math
- 数学常数
:自然常数e的值,约等于2.71828
:圆周率π,约等于3.1415926
- 数学函数
(x):返回 x 的平方根。
(x, y):返回 x 的 y 次方。
(x):返回 e 的 x 次方。
(x, base=):返回 x 的对数。base 参数为对数的底数,默认为自然对数 e。
(x)、(x)、(x):返回 x 的正弦、余弦和正切值。
(x)、(x)、(x):返回 x 的反正弦、反余弦和反正切值。
- 数值操作
(x):返回不小于 x 的最小整数。
(x):返回不大于 x 的最大整数。
(x):返回 x 的整数部分。
(x):返回 x 的小数部分和整数部分,以元组形式返回。
(x):返回 x 的绝对值。
(x):返回 x 的阶乘。
(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
- 赛道应该选择C++、Java还是python啊?
如果都没学过,只学过c语言,那么建议还是python或C++,其余的,肯定是报自己擅长的啦。 - 一般准备多久能拿省三或省二?拿奖外 别的收获?
我个人觉得无论是研究生组或A组的话,从0开始至少需要2个月左右的时间,而且是每天都学,其余的BC组应该1个月左右。蓝桥杯奖项设置是:省一(10%)、省二(20%)、省三(30%),所以努力2个月加个综测分应该还是比较划算的,最重要的是在这个过程中,对于一门编程语言的入门,会学到很多东西。大多数人内驱力还是比较弱的,相比没有竞赛的压力的自学编程语言,报名一个编程比赛 后的自学更有动力,自己也更自律!!! - 刷题越刷越觉得自己是个废物,咋办?
其实这也是我的真实感受,刷一个新的专题,自己就会严重受挫,现在看来,可能学习的过程就不是那么舒服的。但是李笑来老师告诉过我:
一切都是心理建设
因此,自己需要及时地钝感,哪怕是一道题,安慰自己说:搞明白都是巨大的提升;每一部分的都要练透。我也经常对自己说:学习任何东西都是需要耐心的,也是孤独寂寞的,但是挺过去,学会后自己的世界竟然有所不同。相信我,你并不孤独!!!
Location:江南大学,无锡,中国
Date: 2024/05/13