只要你跑的够快,锅就追不上你

0%

杜教筛

杜教筛可以快速求一些积性函数的前缀和。假设我们要求 $S(n) = \sum_{i = 1}^{n} f(i)$,杜教筛方法如下:

阅读全文 »

简介

本文包括 IOI 2020 集训队作业第 7 到 12 题的题解。

  • 「AGC 022E」 Median Replace
  • 「AGC 022F」 Checkers
  • 「AGC 023D」 Go Home
  • 「AGC 023F」 01 on Tree
  • 「AGC 024D」 Isomorphism Freak
  • 「AGC 024E」 Sequence Growing Hard
阅读全文 »

第一类斯特林数

第一类斯特林数 $s(n, m)$ 表示长度为 $n$ 的置换有 $m$ 个环的方案数。

第一类斯特林数有递推式 $s(n, m) = s(n - 1, m - 1) + s(n - 1, m) \times (n - 1)$,(讨论第 $n$ 个数新开一个环或者接在之前某个数后面),还有 $s(n, m) = \sum_{i = 1}^n s(n - i, m - 1) \times (i - 1)! \times C(n - 1, i - 1)$(枚举第一个数所在的环的大小,并考虑其他数的排法)。

可以用分治 FFT 在 $O(n \log^2 n)$ 的时间内求出第一类斯特林数的一行。

阅读全文 »

简介

长链剖分是一种树链剖分,与重链剖分不同的是,每个点的关键儿子是它向下高度最大的儿子。

长链剖分有许多优美的性质。例如,某个点的 $k$ 级祖先所在链的边数一定不小于 $k$;任意两点之间只会跨过 $\sqrt n$ 条链。另外,长链剖分还可以在线性的时间内解决状态规模为子树高度的许多 dp。

阅读全文 »