竞赛算法集合
竞赛算法集合。
1 STL 小技巧
1.1 头文件
|
|
1.2 I/O
|
|
1.3 常量
|
|
1.4 数学
|
|
1.5 初始化数组
|
|
1.6 修改序列
|
|
动态规划
凸包技巧
https://codeforces.com/contest/319/problem/C
|
|
最长递增序列
https://informatics.msk.ru/mod/statements/view3.php?id=766&chapterid=1794
$O(N \log N)$
|
|
数据结构
笛卡尔树
Balanced Binary Search Tree
https://informatics.msk.ru/mod/statements/view3.php?chapterid=2782
$O(\log N)$
|
|
带有隐式键的笛卡尔树
https://informatics.msk.ru/mod/statements/view3.php?chapterid=111240
$O(\log N)$
|
|
树状数组
$O(\log N)$
https://informatics.msk.ru/mod/statements/view.php?chapterid=3317
|
|
二维树状数组
$O((\log N)^2)$
https://informatics.msk.ru/mod/statements/view.php?chapterid=3013
|
|
隐式的线段树
- 时间复杂度:$O(\log N)$
- 空间复杂度:$O(N \log N)$
https://informatics.msk.ru/mod/statements/view.php?chapterid=3327
|
|
最小队列
- 时间复杂度:$O(1)$
https://informatics.msk.ru//mod/statements/view.php?chapterid=756
|
|
线段树(加法-最小间隔-最大间隔)
https://codeforces.com/contest/1263/problem/E
|
|
线段树(分配-求和)
https://codeforces.com/gym/100093
|
|
线段树(最小值-值更新)
- 预先计算:$O(N \log N)$
- 查询:$O(1)$
https://informatics.msk.ru/mod/statements/view.php?chapterid=3309
|
|
稀疏表
- 预先计算:$O(N)$
- 查询:$O(\log N)$
https://informatics.msk.ru/mod/statements/view.php?chapterid=3309
|
|
几何
最近点对
- 时间复杂度:$O(N \log N)$
https://www.spoj.com/problems/CLOPPAIR/
|
|
|
|
凸包
Graham-Andrew 方法
- 时间复杂度:$O(N \log N)$
https://informatics.msk.ru/mod/statements/view3.php?chapterid=638
https://informatics.msk.ru/mod/statements/view3.php?id=&chapterid=290
|
|
- 时间复杂度:$O(sort) + O(N)$
|
|
图
Bellman-Ford 算法
- 时间复杂度:$O(N \times M)$
https://informatics.msk.ru/mod/statements/view3.php?id=260&chapterid=178
|
|
二部图匹配
Kuhn 算法
- 时间复杂度:$O(N \times M)$
https://informatics.msk.ru/mod/statements/view.php?chapterid=1683
|
|
桥搜索
- 时间复杂度:$O(M)$
https://codeforces.com/gym/100083
|
|
拓扑排序
|
|