前言
为了方便学(bei)习(ban),将各种模板在此整理
模板会被分类得很完善,以方便查找(请通过目录进行快速查询)
以后会持续更新……
数据结构
有一句老话:程序=算法+数据结构
可见数据结构十分重要,这里列出一些
平衡树
平衡树是非常常见的,功能较为强大的一类数据结构
在OI中有着非常重要的地位。
Treap
Splay
Splay适用于维护一个序列
因为它基于伸展的特性十分利于操作
Splay
堆
堆,由于支持每次取出最大、最小值,可以实现优先队列
还是比较常用的
左偏树
左偏树,是最常见的可并堆之一
图论
图论也是OI中重要的一个分支
模板可能会比较多
网络流
网络流,算是经典模型了吧
一般用于资源调配问题
最大流
最小费用最大流
字符串相关
字符串也是OI中十分重要的一个领域
算法也不少呢
Trie树
Trie树,是最基础的字符串处理数据结构
这里用指针实现了一个较简短的:Trie
Manacher
解决最长回文子串的经典算法:Manacher
计算几何
对于图形处理领域,OI中常常涉及到计算几何学
凸包
凸包是计算几何中最为基础的问题
解决问题的算法很多,这里推荐一个:Andrew算法