网络流之最大流与二分匹配(二)
这篇文章先给出一些最大流算法运行效率较高的实现,包括dinic算法和ISAP算法,另外很多组合问题其实都可以归约到最大流问题,比如在一个二分图中找出一个最大匹配
网络流之最大流(一)
图算法中,网络流涉及到的模型比较复杂,也是组合数学中研究的热点。这部分内容先介绍一下网络流基本概念,三大经典算法包括:EK算法,Dinic算法,ISAP算法
树形数据结构(一)
这篇文章着重写了树形数据结构常用的算法,包括树的dfs序,树的深度,树的重心,拓扑排序,连通块;以及稍微进阶一点的树的直径,LCA,树上差分,LCA综合应用
处理的技巧:差分(一)
差分数组是一种解决序列问题很好用的工具,可以将区间增加转换成为单点增加,其中差分数组可以用树状数组,也可以用线段树来维护
线性数据结构(二)
在线性数据结构中,哈希,字符串哈希,manacher算法,KMP,AC自动机都比较常见
线性数据结构(一)
这里还是重点复习以下线性数据结构,单调队列,链表与邻接表,字符串哈希,字符串算法初步(例如Trie),这些问题都是复杂数据结构的基础
数据结构经典模型:线段树(一)
已经有很多篇文章讲过线段树,主席树等高级数据结构,这里初步归纳了这些数据结构经典的应用场景和模型
具体数学:递归模型与计数模型
单调队列与单调栈,字符串哈希,链表等数据结构,不仅仅经常出现在一维线性数据结构中,还经常用于复杂数据结构的优化。另外还写了点常见算法模型的数学基础
基本算法(一)
还是重点介绍了以下算法设计中常用的前缀和,离散化等等
算法设计基础(八)
贪心策略中,一些创造性的思维方式,往往可以从集合的角度出发思考