各种算法的复杂度
图论
-
Dijkstra堆优化 \(O((n+m)logm)\)
-
Floyd \(O(n^3)\)
-
SPFA \(O(?)\)
-
Tarjan \(O(n+m)\)
-
欧拉回路 \(O(m+n)\)
-
网络流 \(O(n^2m)\)
-
最小生成树 \(O(nlogn)\)
数据结构
-
线段树 \(O(nlogn)\)
-
树状数组 \(O(logn)\)
-
并查集 \(O(一个很小的数)\)
-
单调队列和单调栈 均摊\(O(n)\)
-
ST表 预处理\(O(nlogn)\),查询\(O(1)\)
-
堆和优先队列 \(O(logn)\)
字符串
-
manacher \(O(n)\)
-
Trie树 \(O(len)\)
-
AC自动机 \(O(\sum\limits_{i=1}^{} s_i+26n+S)\),其中\(s_i\)为模式串的长度,\(n\)为节点个数,\(S\)为匹配串长度
-
KMP 前缀函数\(O(n)\),匹配\(O(n^2)\)
数论
-
快速幂 \(O(logn)\)
-
exgcd和gcd \(O(logn)\)
-
欧拉函数 \(O(n)\)
-
线性筛 \(O(n)\)