摘要:
博客已经搬家,这个博客之后都不会再更新了。 阅读全文
摘要:
对于一株树,如果我们需要在一株n个结点组成的树上做树上DP,但是其中仅有m个结点需要特殊处理。显然我们可以在原树上做一次完整的树上DP,其时间复杂度为O(n)。但是有的时候m远小于n,且这种请求可能不止发生一次,那么我们将无法在给定时间内完成任务。 实际上每次DP真正涉及到的结点数并不多,其仅为m个 阅读全文
摘要:
对于要求我们统计树上符合条件的路径信息的问题,我们一般可以采用两种方法来实现,一种是树上DP,一种就是点分治。点分治更加的简洁暴力,而树上DP往往会带来相当复杂的状态转移方程,甚至我们无法推出状态转移方程。 点分治的核心思想就是枚举每一个顶点并统计经过该顶点的所有路径信息,而这一过程是通过重构树来实 阅读全文
摘要:
多项式 对于多项式$ f\left(x\right)=\sum_{i=0}^{|f|}{f_ix^i} $,其中|f|表示多项式的阶数,fi表示多项式f中x^i的系数。 多项式的加法定义为$ c\left(x\right)=a\left(x\right)+b\left(x\right)=\sum_{ 阅读全文
摘要:
对于文本T,设T’是T的逆序文本,若T'与T相同,那么称T为回文。比如aba、abba都是回文。 回文树是用于组织和统计文本T中所有回文的数据结构,可以优雅地解决大量回文有关的问题。如同AC自动机,后缀自动机等处理文本的数据结构一样,回文树的建立也拥有着线性的时间复杂度,并且其建立过程是在线的。 下 阅读全文
摘要:
经常遇到一类问题,提供一个图,判断其中是否含环。所谓的环是一条起点与终点相同的路径(至少含有一条边,两个结点)。由于不带环的连通图和带环的连通图有着本质的区别,不带环的连通图是树,而树相较于一般的图可以支持更多更高效的算法,比如log2(n)时间复杂度内找任意两点的路径信息,在树上进行树形DP等等。 阅读全文
摘要:
概述 后缀自动机是一类确定性有限自动机,其可以以O(n)的时空复杂度在长度为n的模式串P上进行编译,得到的则是Suffix Automaton,即后缀自动机。后缀自动机可以在O(m)的时间复杂度内判别长度为m的串是否是P的子串,是否是P的后缀。 理论部分 后缀自动机实际上是一副有向图,我们从起点st 阅读全文
摘要:
莫队算法是由之前的国家队队长莫涛发明,故称为莫队算法。其用于处于静态区间查询。 区间莫队 对于区间查询,我们一般会使用主席树或树套树之类吊炸天的数据结构来进行处理。这是基于我们可以对区间进行二分,并通过分治的方式保证拥有对数级别的性能。当然前提是查询的内容要适合进行分治处理,对于形如最大值最小值,分 阅读全文
摘要:
A*算法是一类贪心算法,其可以用于寻找最优路径。我们可以利用A*算法来求第k短路径。 一条路径可以由两部分组成,第一部分是一个从出发到达任意点的任意路径,而第二部分是从第一部分的末端出发,到终点的最短路径。两部分正好可以组成一条路径,且每一条路径都可以分解这两部分(允许任意一部分为空)。因此当我们已 阅读全文
摘要:
对于一个无向带边权连通图G(V,E),我们一定能从中提取出最小生成树,那么对于次小生成树该如何获取?记图G中有效生成树集合为Z,而T为G的中的总权重最小的生成树,那么G\{T}中总权重最小的树就是次小生成树。 我们不妨先考虑这样一个问题,记T为图G中的最小生成树,由于生成树由|V|-1条边唯一决定, 阅读全文