算法 | 莫队算法

莫队算法适用于:若存在一个长度为 n 的序列,对于序列上的 m 个区间询问问题,如果一个区间答案能够在 O(1) 转移到相邻区间的答案,那么可以通过莫队算法在 O(nm) 的复杂度求出所有询问。

对于区间 [l,r],它的相邻区间定义为:

  • [l1,r]
  • [l+1,r]
  • [l,r1]
  • [l,r+1]

- 阅读剩余部分 -

算法 | Manacher

Manacher (manachar, 马拉车):O(n) 时间内计算一个字符串内所有回文子串的算法。

- 阅读剩余部分 -

算法 | 字符串哈希

字符串哈希:定义一种将字符串映射到一个整型哈希值的函数 f(),我们希望这个函数可以方便地帮我们判断两个字符串是否相等。

- 阅读剩余部分 -

算法 | 树链剖分

树链剖 (pōu) 分:树链剖分用于将树分割成若干条链的形式,使它组合成线性结构,然后就可以用其他的数据结构(例如线段树)维护信息。

- 阅读剩余部分 -

算法 | 最近公共祖先

最近公共祖先 (LCA, Lowest Common Ancestor):树中两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。

- 阅读剩余部分 -