跳到路线图

Python 算法与蓝桥杯

进行中

学生准备参加蓝桥杯(Python 组),但拿奖本身不是目的——真正想要的是把 Python 的算法能力练起来:遇到一个没见过的问题,能自己建模、判断该用什么算法、估出复杂度,并写出能通过时间限制的代码。

在做的项目

AI 刷题助手(题目文本 → 大模型 API 分析题意 → 推荐候选算法 → 对拍器与样例自动验证候选解)

大纲路线图

未开始– 学习中– 能独立应用– 需要复习– 已通过项目验证–
第 1 层 · 1 个知识点
从一道蓝桥杯题说起初步理解 说出问题到程序的四步,并解释规模变大后暴力解为何失效 前置 无60%
第 2 层 · 1 个知识点
同一道题,两种写法当前学习中 能按数据规模估算运行时间,并判断一种写法会不会超时 前置 从一道蓝桥杯题说起10%
第 3 层 · 1 个知识点
列表与字典的隐藏价格未开始 说出列表与字典各操作的复杂度,并在实现里选对容器 前置 同一道题,两种写法0%
第 4 层 · 2 个知识点
把一段代码变成函数未开始 能把重复代码抽成带参函数,说清参数、返回与作用域 前置 列表与字典的隐藏价格0%
为什么字典查得那么快未开始 能用哈希表把查重与统计降到 O(1),并解释冲突的影响 前置 列表与字典的隐藏价格0%
第 5 层 · 2 个知识点
推导式与常用内置工具未开始 能用推导式与常用内置函数把一段循环压到一行 前置 把一段代码变成函数0%
一维数据的两种走法未开始 能用前缀和与双指针把两层循环降成一层 前置 把一段代码变成函数列表与字典的隐藏价格0%
第 6 层 · 3 个知识点
读完输入再动手未开始 能稳定解析多行多元素输入,并用样例自查提交前的错误 前置 推导式与常用内置工具0%
后进先出与先进先出未开始 能用栈与队列解题,并说出各自适用的题目特征 前置 一维数据的两种走法0%
双指针:两个下标的配合未开始 能用对撞指针与快慢指针解去重、判定与配对类题目 前置 一维数据的两种走法0%
第 7 层 · 2 个知识点
实验一:把一道题跑通实验未开始 做出 solve 脚本:解析输入、求解、跑通样例并打印结果 前置 读完输入再动手把一段代码变成函数同一道题,两种写法列表与字典的隐藏价格推导式与常用内置工具0%
递归:函数调用自己未开始 能写出带正确基例与递归关系的递归函数,并说清调用过程 前置 后进先出与先进先出0%
第 8 层 · 4 个知识点
先把暴力写对未开始 能写出正确答案的暴力解,并据此估出可接受的复杂度上限 前置 实验一:把一道题跑通同一道题,两种写法0%
排序:分而治之的样板未开始 能手写归并排序与快速排序,并说出各自复杂度与最坏情况 前置 递归:函数调用自己一维数据的两种走法0%
树:会递归的结构未开始 能写出二叉树三种遍历,并用递归求出深度与节点数 前置 递归:函数调用自己后进先出与先进先出0%
并查集:谁和谁是一伙的未开始 能实现带路径压缩的并查集,并判断两点是否连通 前置 为什么字典查得那么快递归:函数调用自己0%
第 9 层 · 4 个知识点
二分:每次砍掉一半未开始 能写对左右边界不越界的二分查找,并说明循环不变式 前置 排序:分而治之的样板把一段代码变成函数0%
每次都要最小的那个未开始 能用 heapq 解决取极值类问题,并说出堆的操作复杂度 前置 树:会递归的结构0%
把问题画成一张图未开始 能把实际问题抽象成图,并用邻接表存下它 前置 为什么字典查得那么快并查集:谁和谁是一伙的0%
贪心:每一步都选当前最好未开始 能判断一个问题能否用贪心,并用交换论证说明理由 前置 排序:分而治之的样板0%
第 10 层 · 4 个知识点
实验二:给解法装上对拍器实验未开始 做出对拍脚本:随机数据上自动比对新旧解法并定位反例 前置 二分:每次砍掉一半后进先出与先进先出双指针:两个下标的配合递归:函数调用自己排序:分而治之的样板一维数据的两种走法0%
搜索:把图走一遍未开始 能用 DFS 与 BFS 解题,并说出两者分别适合什么场景 前置 把问题画成一张图后进先出与先进先出0%
二分答案:猜一个再验一遍未开始 能把求最值问题转成判定问题并用二分求解 前置 二分:每次砍掉一半一维数据的两种走法0%
动态规划:把重复计算记下来未开始 能把递归解改成记忆化与递推版,并写清状态与转移方程 前置 递归:函数调用自己贪心:每一步都选当前最好0%
第 11 层 · 5 个知识点
背包:选与不选未开始 能手写 0/1 背包与完全背包,并说明遍历顺序为何不同 前置 动态规划:把重复计算记下来0%
实验三:让助手推荐并验证实验未开始 做出推荐与验证链:题目文本进、候选算法出、跑通自动验证 前置 为什么字典查得那么快树:会递归的结构每次都要最小的那个并查集:谁和谁是一伙的把问题画成一张图搜索:把图走一遍二分答案:猜一个再验一遍贪心:每一步都选当前最好实验二:给解法装上对拍器0%
看数据规模挑算法未开始 能由数据范围与问法反查算法族,并说出选择的理由 前置 动态规划:把重复计算记下来贪心:每一步都选当前最好实验二:给解法装上对拍器0%
让 Python 再快一点未开始 能用常数优化把接近时限的解法压进时限内 前置 列表与字典的隐藏价格实验二:给解法装上对拍器0%
交卷之前你要检查什么未开始 能在提交前用暴力解对拍并跑完边界数据自检 前置 实验二:给解法装上对拍器0%
第 12 层 · 1 个知识点
序列与区间的状态设计未开始 能设计序列与区间 DP 的状态,并写出转移方程 前置 背包:选与不选一维数据的两种走法0%
第 13 层 · 1 个知识点
实验四:一次完整的赛前模拟实验未开始 能限时独立完成省赛难度真题,并讲清所用算法为何正确 前置 动态规划:把重复计算记下来背包:选与不选序列与区间的状态设计二分答案:猜一个再验一遍贪心:每一步都选当前最好看数据规模挑算法让 Python 再快一点交卷之前你要检查什么0%
第 14 层 · 1 个知识点
把算法讲给别人听未开始 能对一个算法讲清正确性、复杂度与被淘汰的数据规模 前置 实验二:给解法装上对拍器实验四:一次完整的赛前模拟0%
第 15 层 · 1 个知识点
综合实战:把刷题助手做完实验未开始 做出端到端可用助手:题目文本进、推荐算法出、验证留证据 前置 实验一:把一道题跑通实验二:给解法装上对拍器实验三:让助手推荐并验证实验四:一次完整的赛前模拟把算法讲给别人听0%

附件拖动列表可惯性滚动