BFS
枚举子集
快速幂
进制转换
栈(应该再细分)
结构体排序
排序离散化
全排列
基础数论
拓扑排序
bit.md
ufs.md
math.md
matrix.md
monotonic_queue.md
knapsack.md
bfs.md
dfs.md
topo_sort.md
mst.md
lca.md
shortest_path.md
首先学习计算机语法
C++ 语法 基本计算机操作,定义变量,输入输出。判断,循环。
数组,函数。
字符串
位运算
递归
高精度
然后学习一些简单的数学知识
数学 分解质因数
数学 乘法逆元 预处理阶乘逆元 预处理 组合数 Lucas定理
差分
gcd
exgcd
读入优化
常数优化
一些结论题 / 时间复杂度 / 生成数据 / 对拍
然后是排序和结构体排序
STL
结构体排序
队列
栈
尺取法/双指针法
单调队列
BFS
DFS
堆 PriorityQueue
然后是背包并查集
背包
并查集
然后图论
图论 / 拓扑排序 / 欧拉回路
最小生成树 Kruskal
最小生成树 Prim
最短路 Bellman Ford
最短路 Dijkstra
最短路 Floyd
然后是二分动态规划
二分 Binary Search
三分 Binary Search
最长公共子序列,最长不下降子序列 LIS/LCS
然后数据结构
树状数组
逆序对
归并
ST / RMQ
线段树
记忆化搜索
概率题目
博弈论
最近公共祖先 LCA
树的重心
树形DP
区间DP
数位DP
字符串
字符串
KMP
Hash
Trie
AC自动机
序列自动机
图论
数据结构
线段树 复杂的信息
线段树 复杂的标记
树状数组(询问第k大) 进阶
字符串
后缀数组 / 后缀自动机 / 后缀树
最小表示法
Manacher 回文树
一般版本的搜索
CDQ分治
点分治
数学
简单数论 筛法
矩阵乘法
莫队算法
博弈论
强连通分量
双连通分量
多项式
筛法
莫队
bitset
树链剖分
单调队列
可持久化线段树
平衡树/Splay
二分图
网络流
费用流
计算几何
凸包
半平面交
线性基
FWT
K-D 树
积分
插头DP
Dancing Links
动态DP
fft
ntt