跳转至

Python · 笔试与竞赛

算法笔记

从 Python 语法一路写到树链剖分。十个部分、74 章正文按顺序读; 配套的 165 道牛客真题在站内直接看思路和完整源码,不用跳出去翻仓库。 每一份题解都在牛客判题机上真的提交过。

  • 74章正文
  • 10个部分
  • 165题通过牛客判题机

从第 01 章开始读 直接看题解

怎么用这本书

三种读法,按你现在的状态挑一种:

  • 零基础 / 想系统过一遍:从 Python 基础 顺序读到 动态规划,每章末尾的例题当场做掉。章节底部有「上一章 / 下一章」,一路点下去就行。
  • 只想补某个知识点:在下面的章节盘里找章号,或者用右上角搜索。章节之间的前置依赖写在每章开头的引言里。
  • 在刷题,卡在某道题上:去 题解 按题号找,每页都写了「这题考什么、数据规模、坑在哪」,再往下是能直接跑的完整代码。

关于 Python 的常数

正文默认用 CPython 的写法。少数几道题 CPython 物理上过不去,题解页会标出 pypy3, 原因写在那一页的「为什么必须 PyPy3」里。

全书章节

章号就是这本书的地图:01–16 是语法,20–24 是竞赛基本功,30 往后按数据结构、算法、专题递增。 右侧的数字是这一章配了几道牛客真题。

Python 基础16 章

  1. 01语法与执行模型1 题
  2. 02数据类型与转换3 题
  3. 03运算符与位运算4 题
  4. 04字符串4 题
  5. 05列表1 题
  6. 06元组与序列通论1 题
  7. 07字典1 题
  8. 08集合2 题
  9. 09推导式2 题
  10. 10条件与循环2 题
  11. 11函数1 题
  12. 12自定义排序6 题
  13. 13内置函数速查3 题
  14. 14标准库速查3 题
  15. 15面向对象、迭代器与生成器1 题
  16. 16模块、异常与文件1 题

竞赛基本功5 章

  1. 20输入输出处理18 题
  2. 21复杂度与 Python 性能3 题
  3. 22高精度与大整数2 题
  4. 23浮点与科学计数法3 题
  5. 24多项式1 题

数据结构10 章

  1. 30序列与数组1 题
  2. 31链表2 题
  3. 322 题
  4. 33队列与双端队列1 题
  5. 34集合与多重集合2 题
  6. 35优先队列与堆4 题
  7. 36哈希与字符串哈希4 题
  8. 37单调栈与单调队列3 题
  9. 38并查集3 题
  10. 39树状数组与线段树6 题

基础算法11 章

  1. 40排序5 题
  2. 41桶计数与离散化2 题
  3. 42前缀和与差分5 题
  4. 43双指针与滑动窗口7 题
  5. 44二分6 题
  6. 45倍增3 题
  7. 46位运算3 题
  8. 47贪心13 题
  9. 48构造6 题
  10. 49模拟9 题
  11. 50博弈论3 题

搜索3 章

  1. 60DFS 深度优先搜索5 题
  2. 61BFS 广度优先搜索8 题
  3. 62记忆化搜索与剪枝3 题

字符串4 章

  1. 70字符串处理2 题
  2. 71字符串匹配 KMP1 题
  3. 72回文2 题
  4. 73Trie 字典树1 题

数学6 章

  1. 80数论基础7 题
  2. 81快速幂与逆元3 题
  3. 82欧拉函数与欧拉降幂2 题
  4. 83整除分块与数论进阶4 题
  5. 84组合数学6 题
  6. 85基础数学与递推4 题

图与树5 章

  1. 90图的表示与遍历1 题
  2. 91最短路4 题
  3. 92最小生成树2 题
  4. 93拓扑排序与二分图2 题
  5. 94树上算法2 题

动态规划5 章

  1. 100DP 入门2 题
  2. 101背包问题9 题
  3. 102线性 DP3 题
  4. 103区间、树形与状压 DP3 题
  5. 104DP 优化3 题

进阶专题9 章

  1. 110计算几何入门2 题
  2. 111偏序集与 Dilworth 定理2 题
  3. 112连通性、强连通分量与割点
  4. 113树链剖分2 题
  5. 114同余方程组与离散对数2 题
  6. 115高级搜索与精确覆盖2 题
  7. 116平衡树与有序集合2 题
  8. 117图论进阶:k 短路与关键路径
  9. 118分治进阶:整体二分与 CDQ

题解与速查