Processing math: 2%

各种 trick 合集

各种 trick……

数据结构常见套路

  1. log 的套路:
  2. 可持久化。
  3. 线段树上二分 / 树状数组上倍增。
  4. 处理子树的套路:
  5. 如果信息有区间减法 / 带修改,首选 DFS 序。
  6. 线段树合并。

莫比乌斯反演常见套路

  1. 如果题目的式子跟 gcd 有关,优先考虑莫反。
  2. \mu * 1 = \epsilon 比莫比乌斯反演公式快很多(指推导的时候)。
  3. 如果有枚举约数的,尽量考虑把它提到式子最前面。
  4. 对所有数对的 \gcd 算一个式子时,考虑枚举 \gcd 并算它贡献的次数。
  5. \gcd(x,y) > 1 时,\mu(xy) = 0

一些公式

  • \sum\limits_{i = 1}^n i = C_{n + 1}^2 = \dfrac {n (n + 1)} 2
  • \sum\limits_{i = 1}^n i^2 = C_{n + 1}^2 + 2C_{n + 1}^3 = \dfrac {n (n + 1) (2n + 1)} 6
  • \sum\limits_{i = 1}^n i^3 = C_{n + 1}^2 + 6C_{n + 1}^3 + 6C_{n + 1}^4 = \dfrac {n^2 (n + 1)^2} 4

某 border 结论证明

以下设 n = |S|

弱周期引理

p,qS 的周期,p + q \le n,则 \gcd(p,q) 也是 S 的周期。

不妨设 p > q,则令 d = p - q
对于 i - q > 0,有 S_i = S_{i-q} = S_{i+p-q} = S_{i+d}
对于 i + p \le n,有 S_i = S_{i+p} = S_{i+p-q} = S_{i+d}
p + q \le n 时不存在 i 同时不满足以上两者。

引理

S 的所有长度不小于 \frac n2 的 border 的长度为一个等差数列。

pS 的最小周期,不妨设 p \le \frac n2
qS 的一个周期,满足 q \le \frac n2
则由弱周期引理可知 \gcd(p,q) 同为 S 的周期。
由上可知 \gcd(p,q) \ge p
故显然 p \mid q

证明

字符串 S 的所有 border 按长度排序后可以划分为 O(\log n) 段等差数列。

S 的 border 长度 x 分类为 [1,2),[2,4),\dots,[2^{k-1},2^k),[2^k,n)\qquad (2^k \ge \frac n2)

对于 x \in [2^k,n),由以上引理可得 x 构成一个等差数列。

对于 x \in [2^{i-1},2^i)
m\max x,易知剩下的 x 也为 S_{1\dots m} 的 border。
x \ge \frac m2,故由上引理易知 x 构成一个等差数列。

Gitalking ...