python算法竞赛学习记录(总)
1、前提知识
分点学习
2、字符串
- 易位构词
- T9
- 字典树
- KMP(Knuth-Morris-Pratt)模式匹配算法
- 最大边的KMP算法
- 字符串的幂
- Rabin-Karp模式匹配算法
- Manacher算法
3、序列
- 网络中的最短路径
- 编辑距离
- 最长公共子序列
- 升序最长子序列
- 两位玩家游戏中的必胜策略
4、数组
- 合并已排序列表
- 区间的总和
- 区间的重复内容
- 区间的最大总和
- 区间的最小值——线段树
- 区间的总和——树状数组(fenwick树)
- k个独立元素的窗口
5、区间
- 区间树(线段树)
- 区间的并集
- 区间的覆盖
6、图
- python对图编码
- 隐式图
- 深度优先遍历——深度优先算法
- 广度优先遍历——广度优先算法
- 连通分量
- 双连通分量
- 拓扑排序
- 强连通分量
- 可满足性
7、图中的环
- 欧拉路径
- 中国邮差问题
- 最小长度上的比率权重环——Krap算法
- 单位时间上成为最小比率环
- 旅行推销员问题
8、最短路径
- 组合的属性
- 权重为0或1的图
- 权重为正值或者空值的图——Dijkstra算法
- 随即权重的图——Bellman—Ford算法
- 所有源点-目标顶点对——Floyd-Wardshall算法
- 网格
- 变种问题
9、耦合性和流
- 二分图最大匹配
- 最大权重的完美匹配——Kuhn-Munkres算法
- 无交叉平面匹配
- 稳定的婚姻——Gale-Shapley算法
- Ford-Fulkerson最大流算法
- Edmonds-karp算法的最大流
- Dinic算法
- s-t最小割
- 片面的s-t最小割
- 运输问题
- 在流和匹配之间化简
- 偏序的宽度——Dilworth算法啊
10、树
- 哈夫曼编码
- 最近的共同祖先
- 树中的最长路径
- 最小权重生成树——Kruskal算法
11、集合
- 背包问题
- 找零问题
- 给定总和值得子集
- k个整数之和
12、点和多边形
- 凸包问题
- 多边形的测量
- 最近点对
- 简单直线多边形
13、长方形
- 组成长方形
- 网格中的最大正方形
- 直方图中的最大长方形
- 网格中的最大长方形
- 合并长方形
- 不相交长方形的合并
14、计算
- 最大公约数
- 贝祖等式
- 二项式系数
- 快速幂
- 素数
- 计算算数表达式
- 线性方程组
- 矩阵序列相乘
15、穷举
- 激光路径
- 精确覆盖
- 数独
- 排列枚举
- 正确计算