image.png
BFS(双向 BFS)• DFS • A* • IDA* • DLX
• 记忆化搜索 • 剪枝(可行性剪枝 • 最优性剪枝 • 玄学剪枝)
• 模拟退火 • 遗传算法 • 爬山算法 • 随机化搜索
队列(单调队列 • 优先队列 • 双端队列,堆)
• 栈(单调栈)
• 堆(二叉堆 • 可并堆(左偏树(可持久化左偏树)• 斜堆 • 配对堆 • 斐堆 • 随机堆)
• 并查集 •(可持久化并查集 • 带权并查集)
• 哈希表
• 链表(双向链表 • 块状链表(可持久化块状链表)• 十字链表)
• ST 表
• 块状树
• 树状数组(多维树状数组 • 树状数组求逆序对)
• 线段树(动态开点线段树 • 线段树合并 • 权值线段树 • ZKW 线段树 • 二维线段树,线段树套线段树 • 可持久化线段树,主席树(静态第 k 大 • 动态第 k 大)• 扫描线)
• 平衡树(树堆 • FHQ Treap,无旋树堆(可持久化树堆)• Splay(可持久化 Splay)• 替罪羊树 • 红黑树 • AVL 树 • SBT • 朝鲜树)
• Trie 树(可持久化 Trie 树)• KD 树 • 划分树 • 四分树 • 笛卡尔树
• 树套树(线段树套平衡树 • 平衡树套线段树 • 其他树套树)
• STL(std::map • std::set(std::multiset)• std::stack • std::queue • std::priority_queue • std::vector • std::bitset)
SPFA(SPFA 判负环 • SLF 优化 • LLL 优化)
• Dijkstra(堆优化 Dijkstra • 线段树优化 Dijkstra)• Floyd(倍增 Floyd)
• k 短路 • 最长路 • 差分约束
• Tarjan(强连通分量,缩点 • 点、边双连通分量 • 割边,割点,桥 • 2-SAT)
• 拓扑排序
• 二分图(二分图最大匹配,匈牙利 • 二分图最大权匹配,KM)
• 网络流(最大流,最小割(Dinic • ISAP)• 最小费用最大流(SPFA 费用流 • ZKW 费用流)• 有上下界的网络流 • 数构优化网络流 • 分数规划)
• 欧拉图
• 树论(生成树(最小生成树(Kruskal • Prim 及堆优化 • 严格次小生成树 • 最大生成树)• 其他各种生成树(最优比率生成树 • 最小瓶颈生成树)
• 生成树计数(暴力统计 • Matrix-Tree 定理)
• LCA(倍增 • 树剖 • Tarjan 离线)• 虚树 • 基环树
• 树链剖分 • Prufer 序列 • 括号序列 • DFS 序
• 树的遍历(前序 • 中序 • 后序)
• 树上倍增 • 树的直径 • 树的重心
• 树分治(点分治 • 边分治 • 动态树分治)• Link/cut Tree • 树分块)
• 区间图与弦图 • 平面图与对偶图 • 最小树形图,朱刘算法 • 仙人掌(动态仙人掌)
KMP(exKMP)• AC 自动机(Fail 树)
• 后缀数组(倍增 • DC3)
• 后缀自动机 • 后缀树 • 后缀平衡树 • 后缀仙人掌
• 字串哈希
• Trie 树(可持久化 Trie 树 • Trie 图)
• Manacher • 回文自动机
• 最小表示法
基础知识 • 向量(点积 • 叉积 • 基础知识)
• 凸包 • 旋转卡壳 • 半平面交
• 随机增量 • Pick 定理 • 梯形剖分,三角形剖分
• 扫描线
基础知识(模理论 • 积性函数 • 高中部分数学知识)
• 质数(暴力判质数 • Miller-Rabbin 质数检测 • 筛法求质数(埃氏筛 • 线筛)• 分解质因数)• 欧拉函数(n−−√ 求单值 • 线筛欧拉函数 • 欧拉定理)
• 快速幂(慢速乘)
• 最大公因数(辗转相除(最大公因数 • 最小公倍数)• 扩欧(求逆元 • 求同余方程 • 求 ax+by=c )
• 中国剩余定理(互质版 • 不互质版)
• 矩阵(矩阵快速幂 • 矩阵求逆)
• 行列式 • 莫比乌斯反演(莫比乌斯函数 • 杜教筛)• 狄利克雷卷积 • 容斥原理(抽屉原理 • Ramsey 定理)
• 费马小定理 • 逆元(线性求逆元 • 费马小定理求逆元 • 扩欧求逆元)
• 高斯消元 • 线性基 • 排列组合(贾宪三角 • Lucas 定理(exLucas))• BSGS(exBSGS)• 数列(斐波那契数列(gcd(f[n],f[m])=f[gcd(n,m)] )
• 卡特兰数 • 斯特林数(第一类斯特林数 • 第二类斯特林数)
• 贝尔数 • 等差、等比数列(通项公式 • 求和公式))
• Pólya 定理 • 置换群 • 原根 • 快速傅氏变换,
FFT(快速数论变换,NTT • 快速沃尔什变换,FWT)
• 拉格朗日(拉格朗日乘子法 • 拉格朗日插值 • 拉格朗日四平方和定理)
• 线性规划 • 单纯性 • 辛普森积分 • 概率和期望
简单 DP • 背包 DP(01 背包 • 完全背包 • 多重背包)• 区间 DP
• 状压 DP(普通状压(枚举子集 DP)• 斯坦纳树 • 插头 DP)
• 数位 DP • 树形 DP(基环树 DP)
• 环形 DP • 环 + 外向树 DP • 期望 DP • 记忆化 DP • DAG DP • 其他 DP • 多维 DP • DP 套 DP
• DP 优化(斜率优化 • 四边形不等式优化 • 数构优化(单调队列优化 DP • 线段树优化 DP)
• 改变状态优化 DP • 寻址优化
二分(三分 • 整体二分 • 二分答案 • lower_bound • upper_bound)
• 倍增 • 贪心 • 枚举 • 暴力 • 分治(CDQ 分治)
• 离散化 • 模拟
• Meet in the Middle • 排序(快速排序,sort(重载运算符)• 归并排序(归并排序求逆序对)• 桶排 • 基数排序 • 计数排序 • 插入排序 • 选择排序 • 冒泡排序)
• 分块 • 随机化 • 前缀和(二维前缀和)
• 高精(压位)• 递推,递归(矩阵加速递推)
• 位运算
• 莫队(树上莫队 • 带修改莫队)• 打表(打表找规律 • 分段打表)• 卡常