竞争性编程革命者
在竞争性编程比赛中广泛使用的C ++中算法和数据结构的收集。
涵盖了以下主题:
范围更新和查询
- 范围汇总查询:
- 二进制索引树(位) :
- 点更新范围查询
- 范围更新范围查询
- 订单统计查询
- 2D二进制索引树
- 细分树(Segtree) :
- 点更新范围查询
- 快速迭代的segtrees
- 范围更新点查询 - 懒惰的促进
- 最大子段总和范围
- 2D段树
- 动态段树 - 元素之间的插入/删除
- 动态段树 - 反向段
- 合并排序树木:
- 稀疏表:
- MO算法:
- 动态编程:
- 动态编程模板:
- 标准DP问题:
- 最长增加的子序列
- 最长的全回旋子序
- Levenstein距离 /编辑距离
- 图:
- 单源最短路径算法:
- dijkstra在密集图中
- Dijkstra使用优先队列
- KTH使用Dijkstra之间的最短路径
- 贝尔曼·福特(Bellman Ford)负面周期检测
- 所有配对最短路径:
- 使用二进制指数
- 弗洛伊德·沃沙尔(Floyd Warshall)
- 周期检测:
- 最小跨树:
- 拓扑排序 /紧密连接的组件:
- MaxFlow/匹配:
- 霍普克罗夫特karp max匹配
- DINIC MAX流
- 杂项:
- 树:
- 二进制指数:
- 字符串:
- 字符串算法:
- Z算法
- KMP算法
- 滚弦哈希
- 动态字符串的滚动字符串哈希
- 字符串数据结构:
- 排序:
- 快速输入/输出,字符串/整数转换:
- 杂项。数据结构:
- 分离设置
- 分离集(支持撤消操作)
- 最大/分钟优先级队列与更新
- 二进制trie用于XOR最大化/最小化
- bigint *
- 增强二进制树的订单统计和等级查询
- 单调优先队列
- 特里
- 持续的数据结构:
- 数字理论算法:
- 原始检查:
- 筛子:
- Eratosthenes的筛子
- 分段筛子
- 计算主要因素
- 多项式乘法:
- 杂项:
- 组合和加泰罗尼亚 - 阶乘预处理
- Mobeius功能
- Euler Tortient函数
- Lucas Theorm -Combinatorics
- 计算几何形状:
- 杂项:
- x = 1:n的地板(x)之和
- 循环功能的总和 *
- 在每个元素之前/之后,最接近的较大元素
- 乘以长整数
- 乘以长整数 - 溢出检测
- 扫描线 - 合并相交间隔