Python

这里整理面向算法竞赛和小数据验证的 Python 笔记。默认读者熟悉 C++,文章重点放在如何快速表达数据、状态和枚举过程。

内容

  1. 用 Python 快速编写算法暴力验证程序:点对、区间、子集、排列、回溯、BFS 和记忆化等常见验证模型。
  2. Python 暴力代码大模板:输入输出、常用导入、枚举、DFS、BFS 和辅助函数集中在一个可复制文件中。
  3. Python 竞赛输入输出与字符串处理:读取整数和字符串、按 token 解析、格式化输出。
  4. Python OJ 输入输出速查:按常见题面格式查找可直接套用的输入输出代码,并解释每种写法。
  5. Python 排序与顺序验证sortedkey、多关键字排序,以及用全排列验证排序贪心。
  6. Python 竞赛常用容器Counterdefaultdictdequedictset
  7. Python 生成器表达式:惰性计算、一次性消费以及 anyallnext 的短路。
  8. Python itertools 实用组合pairwiseaccumulatechainrepeatzip_longest
  9. 用 Python 生成可复现的随机测试数据:固定种子、随机数组、排列、区间、树和简单图。
  10. Python 验证代码中的常用数学工具:整数平方根、最大公约数、浮点比较和精确分数。
  11. Python 函数式编程三剑客:map、filter 与 reduce:深入理解高阶函数思想以及在数据聚合与映射中的应用。
  12. C++ 选手转 Python 竞赛的 4 个血泪坑点:浅拷贝灾难、回溯存答案为空、闭包赋值报错与性能陷阱。
  13. Python 组合数学神器:有放回的组合与隔板法:利用 combinations_with_replacement 秒杀无限背包暴力与非严格递增序列构造。
  14. Python 暴力验证:含有重复元素的全排列去重:原理解析 unique_permutations 及其核心的同级枝剪算法。
  15. 组合去重的核心哲学:有序唯一性:从算法“术”到数学“道”,一统组合 DFS 与去重排列的底层思想。
  16. Python 隐式图 BFS 最短路径模板:通用 bfs_shortest 函数在数轴、网格迷宫、八数码与单词接龙中的用法。
  17. Python 子集和判定:记忆化 DFS 与 @cache:暴力指数级搜索加上缓存,和 C++ 全局数组记忆化一一对照。
  18. Python 竞赛中的字典经典用法:dict、defaultdict、Counter 三件套覆盖竞赛 30% 的数据结构需求。
  19. Python 解包操作符 * 和 **:写更少做更多:扩展解包、合并列表、矩阵转置、合并字典。