竞赛算法集合
竞赛算法集合。
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
| |
拓扑排序
| |