| ACM 算法 | 难度 | ||||
| 数据结构 | 栈 | 栈 | 1 | ||
| 单调栈 | |||||
| 队列 | 一般队列 | 1 | |||
| 优先队列/单调队列 | 1 | ||||
| 循环队列 | 2 | ||||
| 双端队列 | 2 | ||||
| 链表 | 一般链表 | 1 | |||
| 循环链表 | 2 | ||||
| 双向链表 | 2 | ||||
| 块状链表 | 2 | ||||
| 十字链表 | 3 | ||||
| 邻接表/邻接矩阵 | 邻接表 | 1 | |||
| 邻接多重表 | 2 | ||||
| Hash表(哈希表) | Hash表 | ||||
| 字符串Hash | |||||
| 二叉树 | 一般二叉树 | 1 | |||
| 遍历二叉树 | 先序遍历二叉树 | 2 | |||
| 中序遍历二叉树 | 2 | ||||
| 后序遍历二叉树 | 2 | ||||
| Huffman树(赫夫曼树)(最优二叉树) | 1 | ||||
| Huffman编码(赫夫曼编码) | 1 | ||||
| 二叉查找树/二叉排序树/二叉搜索树 | Treap | 3 | |||
| 伸展树 | 3 | ||||
| 线索二叉树 | 4 | ||||
| 平衡二叉树 | 4 | ||||
| 堆 | 大/小根堆(优先队列) | 2 | |||
| 可并堆 | 3 | ||||
| 左偏堆 | 3 | ||||
| 线段树 | 一维线段树 | 2 | |||
| 延迟标记 | 3 | ||||
| 二维线段树 | 3 | ||||
| 扫描线 | 2 | ||||
| 线段树套平衡树 | 5 | ||||
| 主席树/可持久化线段树 | 6 | ||||
| 树状数组 | 一维树状数组 | 2 | |||
| N维树状数组 | 3 | ||||
| 逆序对问题 | 2 | ||||
| 字符串 | KMP算法 | 2 | |||
| 最小表示法 | 2 | ||||
| 字典树/Trie树 | 静态建树 | 2 | |||
| 动态建树 | 2 | ||||
| 可持久化Trie树 | 3 | ||||
| 后缀数组 | 5 | ||||
| 后缀树 | |||||
| 后缀自动机 | |||||
| Aho-Corasick自动机 | 6 | ||||
| 并查集 | 并查集 | 1 | |||
| 路径压缩 | 1 | ||||
| 边带权并查集 | 1 | ||||
| 分块 | 2 | ||||
| RMQ问题 | 朴素 | 1 | |||
| 线段树 | 2 | ||||
| ST表 | 3 | ||||
| RMQ标准算法 | 4 | ||||
| 离散化 | 2 | ||||
| 红黑树 | 5 | ||||
| 跳跃表 | 3 | ||||
| 图论 | 搜索 | 深度优先遍历/DFS | 深度优先遍历/DFS | 2 | |
| DFS序 | 1 | ||||
| 迭代加深DFS(ID-DFS) | 3 | ||||
| 双向DFS | 2 | ||||
| 广度优先遍历/BFS | 广度优先遍历/BFS | 2 | |||
| 双端队列BFS | 2 | ||||
| 优先队列BFS | 2 | ||||
| 多起点BFS | 2 | ||||
| 双重BFS | 2 | ||||
| 双向BFS | 2 | ||||
| 剪枝 | 3 | ||||
| 拓扑排序 | 2 | ||||
| 状态压缩 | 1 | ||||
| A*算法 | |||||
| IDA*算法 | |||||
| 记忆化搜索 | 3 | ||||
| 强连通分量 | 强连通分量 | Tarjan算法 | 3 | ||
| Korasaju算法 | 3 | ||||
| 双连通分量 | |||||
| 强连通分支及其缩点 | |||||
| 图的割边和割点 | |||||
| 2-SAT问题 | |||||
| 欧拉路问题 | 欧拉路径 | 2 | |||
| 欧拉回路 | 2 | ||||
| 哈密顿回路 | |||||
| 最小生成树 | Prim算法 | 2 | |||
| Kruskal算法(稀疏图) | 2 | ||||
| Sollin算法 | 3 | ||||
| 次小生成树 | 3 | ||||
| 最小有向生成树 | |||||
| 第k小生成树 | 3 | ||||
| 最优比例生成树 | |||||
| 最小树形图 | |||||
| 最小瓶颈生成树 | 最小瓶颈生成树 | ||||
| 每对结点间最小瓶颈路 | |||||
| 最小瓶颈路 | |||||
| 最小度限制生成树 | |||||
| 增量最小生成树 | |||||
| 平面点的欧几里德最小生成树 | |||||
| 平面点的曼哈顿最小生成树 | |||||
| 最小平衡生成树 | |||||
| 最短路径 | 单源最短路径 | 有向无环图的最短路径 | 拓扑排序 | 2 | |
| 非负权值加权图的最短路径 | Dijkstra算法 | 2 | |||
| Dijkstra算法(二叉堆优化) | 2 | ||||
| 含负权值加权图的最短路径 | Bellman-Ford算法 | 2 | |||
| SPFA算法 | 2 | ||||
| 全源最短最短路径 | Floyd算法 | 1 | |||
| Johnson算法 | 2 | ||||
| 次短路径 | |||||
| 第k短路径 | |||||
| 差分约束系统 | 3 | ||||
| 平面点对的最短路径(优化) | |||||
| 双标准限制最短路径 | |||||
| 环 | 环判定 | 2 | |||
| 负环判定 | Bellman-Ford算法 | 2 | |||
| SPFA算法 | 2 | ||||
| 网络流 | 最大流问题 | 增广路算法 | 增广路定理 | 1 | |
| Ford-Fulkerson算法 | 3 | ||||
| Ford-Fulkerson迭加算法 | 3 | ||||
| Edmond-Karp算法 | 3 | ||||
| Dinic算法 | 3 | ||||
| ISAP算法/最短增广路算法 | 3 | ||||
| 预流推进算法 | |||||
| 多源多汇问题 | |||||
| 无源无汇有容量下界网络的可行流 | |||||
| 有容量下界网络的s-t最大/最小流 | |||||
| 节点有限制的网络流 | |||||
| 最小割最大流定理 | |||||
| 最小费用最大流问题 | 容量不固定的s-t最小费用流 | ||||
| 含负费用的最小费用最大流 | |||||
| 费用与流量平方成正比的最小流 | |||||
| 二分图匹配 | 二分图判定 | 2 | |||
| 二分图最大匹配 | 匈牙利算法 | 2 | |||
| Konig定理 | 1 | ||||
| 二分图最小点覆盖 | 匈牙利算法 | 2 | |||
| 二分图最小边覆盖 | |||||
| 二分图最佳完美匹配 | Kuhn-Munkres算法 | ||||
| 二分图完全匹配 | Kuhn-Munkres算法 | ||||
| 二分图多重匹配 | |||||
| 二分图带权最大匹配 | Kuhn-Munkres算法 | ||||
| 二分图最大独立集 | |||||
| 最大闭合子图 | |||||
| 最大密度子图 | |||||
| 公平分配问题 | |||||
| 区间k覆盖问题 | |||||
| 有向无环图(DAG)的最小路径覆盖 | DAG的最小不相交路径覆盖 | 2 | |||
| DAG的最小可相交路径覆盖 | |||||
| 树的直径 | 树形DP | 3 | |||
| BFS | 2 | ||||
| 基环树 | |||||
| 最近公共祖先 | 向上标记法 | ||||
| 树上倍增 | 3 | ||||
| Tarjan 算法 | 2 | ||||
| LCA 转 RMQ | 3 | ||||
| 弦图 | |||||
| 稳定婚姻问题 | |||||
| 动态规划 | 四边形不等式理论 | ||||
| 不完全状态记录 | 青蛙过河问题 | ||||
| 区间DP | |||||
| 背包问题 | 0-1背包 | 2 | |||
| 完全背包 | 2 | ||||
| 分组背包 | |||||
| 多重背包 | |||||
| 判定性背包问题 | |||||
| 带附属关系的背包问题 | |||||
| + -1背包问题 | |||||
| 双背包求最优值 | |||||
| 构造三角形问题 | |||||
| 带上下界限制的背包问题(012背包) | |||||
| 线性的动态规划问题 | 积木游戏问题 | ||||
| 决斗(判定性问题) | |||||
| 圆的最大多边形问题 | |||||
| 统计单词个数问题 | |||||
| 棋盘分割 | |||||
| 日程安排问题 | |||||
| 最***近问题(求出两数之比最接近某数/两数之和等于某数等等) | |||||
| 方块消除游戏(某区间可以连续消去求最大效益) | |||||
| 资源分配问题 | |||||
| 数字三角形问题 | |||||
| 漂亮的打印 | |||||
| 邮局问题与构造答案 | |||||
| 最高积木问题 | |||||
| 两段连续和最大 | |||||
| 2次幂和问题 | |||||
| N个数的最大M段子段和 | |||||
| 交叉最大数问题 | |||||
| 判定性问题的DP(如判定整除、判定可达性等) | 模K问题的DP | ||||
| 特殊的模K问题,求最大(最小)模K的数 | |||||
| 变换数问题 | |||||
| 单调性优化的动态规划 | 1-SUM问题 | ||||
| 2-SUM问题 | |||||
| 序列划分问题(单调队列优化) | |||||
| 剖分问题(多边形剖分/石子合并/圆的剖分/乘积最大) | 凸多边形的三角剖分问题 | ||||
| 乘积最大问题 | |||||
| 多边形游戏(多边形边上是操作符,顶点有权值) | |||||
| 石子合并(N^3/N^2/NLogN各种优化) | |||||
| 贪心的动态规划 | 最优装载问题 | ||||
| 部分背包问题 | |||||
| 乘船问题 | |||||
| 贪心策略 | |||||
| 双机调度问题Johnson算法 | |||||
| 区间DP | |||||
| 数位DP | |||||
| 状态DP | 牛仔射击问题(博弈类) | ||||
| 哈密顿路径的状态dp | |||||
| 两支点天平平衡问题 | |||||
| 一个有向图的最接近二部图 | |||||
| 树型DP | 完美服务器问题(每个节点有3种状态) | ||||
| 小胖守皇宫问题 | |||||
| 网络收费问题 | |||||
| 树中漫游问题 | |||||
| 树上的博弈 | |||||
| 树的最大独立集问题 | |||||
| 树的最大平衡值问题 | |||||
| 构造树的最小环 | |||||
| 数学 | 数论 | 积性函数 | 1 | ||
| 佩尔方程 | 3 | ||||
| 同余 | 同余定理 | 1 | |||
| 费马小定理 | 1 | ||||
| 欧拉定理 | 1 | ||||
| 欧拉定里推论 | 1 | ||||
| 扩展欧几里得算法 | 1 | ||||
| 中国剩余定理 | 1 | ||||
| 乘法逆元 | 1 | ||||
| 素数 | 欧几里得定理 | 1 | |||
| 朴素法 | 1 | ||||
| 筛选法 | Eratosthenes筛选法 | 2 | |||
| 线性筛 | 2 | ||||
| 米勒测试法 | 3 | ||||
| 约数/因数/因子 | 算术基本定理 | 1 | |||
| 算术基本定理的推论 | 1 | ||||
| 因数分解 | 试除法 | 1 | |||
| 倍数法 | 1 | ||||
| 质因数分解 | 试除法 | 1 | |||
| 最大公约数/最大公因数 | 欧几里得算法/辗转相除法 | 1 | |||
| 更相减损术 | 1 | ||||
| 最小公倍数 | 1 | ||||
| 欧拉函数 | Eratosthenes筛选法 | 2 | |||
| 线性筛 | 2 | ||||
| 连分数逼近 | |||||
| 循环群生成元 | |||||
| 进制位 | 1 | ||||
| 矩阵 | 矩阵乘法 | 1 | |||
| 矩阵快速幂 | 1 | ||||
| 矩阵转置 | 1 | ||||
| 组合数学 | 排列组合 | 排列数 | 1 | ||
| 组合数 | 组合数求法 | 1 | |||
| 组合数性质 | 1 | ||||
| 杨辉三角 | 1 | ||||
| 二项式定理 | 1 | ||||
| 加法原理 | 1 | ||||
| 乘法原理 | 1 | ||||
| 容斥原理 | 1 | ||||
| 递推关系和生成函数 | |||||
| Lucas定理 | |||||
| Polya计数法 | Polya计数公式 | ||||
| Burnside定理 | |||||
| N皇后构造解 | 2 | ||||
| 幻方的构造 | |||||
| Catalan数列 | |||||
| Stirling数列 | |||||
| 斐波拉契数 | 1 | ||||
| 调和数 | |||||
| 连分数 | |||||
| MoBius | MoBius函数 | ||||
| MoBius反演 | 5 | ||||
| 偏序关系理论 | |||||
| 计算几何 | 基本公式 | 叉乘 | 1 | ||
| 点乘 | 1 | ||||
| 常见形状的面积、周长、体积公式 | 1 | ||||
| 坐标离散化 | 2 | ||||
| 线段 | 判断两线段(一直线、一线段)是否相交 | 1 | |||
| 求两线段的交点 | 1 | ||||
| 多边形 | 判定凸多边形,顶点按顺时针或逆时针给出,(不)允许相邻边共线 | ||||
| 判点在凸多边形内或多边形边上,顶点按顺时针或逆时针给出 | |||||
| 判点在凸多边形内,顶点按顺时针或逆时针给出,在多边形边上返回0 | |||||
| 判点在任意多边形内,顶点按顺时针或逆时针给出 | |||||
| 判线段在任意多边形内,顶点按顺时针或逆时针给出,与边界相交返回1 | |||||
| 多边形重心 | |||||
| 多边形切割(半平面交) | |||||
| 扫描线算法 | |||||
| 多边形的内核 | |||||
| 三角形 | 内心 | 1 | |||
| 外心 | 1 | ||||
| 重心 | 1 | ||||
| 垂心 | 1 | ||||
| 费马点 | |||||
| 圆 | 判直线和圆相交,包括相切 | 1 | |||
| 判线段和圆相交,包括端点和相切 | |||||
| 判圆和圆相交,包括相切 | |||||
| 计算圆上到点p最近点,如p与圆心重合,返回p本身 | |||||
| 计算直线与圆的交点,保证直线与圆有交点 | |||||
| 计算线段与圆的交点可用这个函数后判点是否在线段上 | |||||
| 计算圆与圆的交点,保证圆与圆有交点,圆心不重合 | |||||
| 计算两圆的内外公切线 | |||||
| 计算线段到圆的切点 | |||||
| 点集最小圆覆盖 | |||||
| 球 | |||||
| 可视图的建立 | |||||
| 对踵点 | |||||
| 经典问题 | 平面凸包 | ||||
| 三维凸包 | |||||
| Delaunay剖分/Voronoi图 | |||||
| 计算方法 | 二分法 | 二分法求解单调函数相关知识 | 1 | ||
| 用矩阵加速的计算 | 1 | ||||
| 迭代法 | |||||
| 三分法 | 一般三分法 | ||||
| 三分法求解单峰(单谷)的极值 | |||||
| 快速幂 | 数学快速幂 | 1 | |||
| 矩阵快速幂 | 2 | ||||
| 解线性方程组 | LUP分解 | ||||
| 高斯消元 | |||||
| 解模线性方程组 | |||||
| 定积分计算 | |||||
| 多项式求根 | |||||
| 周期性方程 | |||||
| 线性规划 | |||||
| 快速傅立叶变换 | |||||
| 随机算法 | 1 | ||||
| 0/1分数规划 | |||||
| 迭代逼近 | |||||
| 矩阵法 | |||||
| 概率论 | 全概率公式 | 1 | |||
| 数学期望 | 1 | ||||
| 博弈论 | SG函数 | 3 | |||
| 极大极小过程 | 3 | ||||
| Nim问题 | 2 | ||||

京公网安备 11010502036488号