11月

· · 个人记录

CF1553H

deepthink 一会。

好吧想明白了,挺唐的。

考虑两个数在 trie 上的 lca 算贡献。

那就枚举 lca,记 lca 的 dep 为 dd 前的二进制位没用,暴力枚举后面的位,用一些技巧维护,在 trie 上走。

最后算一算。

复杂度是 O(k2^k)

如何 *2900。

P6108

方差:s^2=\frac{\sum_{i=1}^na_i^2}n-\frac{\sum_{i=1}^n\sum_{j=1}^na_ia_j}{n^2}

贡献分成三部分:\frac{a_i^2}n,\frac{a_i^2}{n^2},\frac{a_ia_j}{n^2},算个系数即可。

第一部分: $$ \begin{aligned} \sum_{i=1}^L\frac{\binom{L-1}{i-1}}i &=\frac1L\sum_{i=1}^L\binom Li \\&=\frac{2^L-1}L \end{aligned} $$ 第二部分: $$ \begin{aligned} \sum_{i=1}^L\frac{\binom{L-1}{i-1}}{i^2} &=\frac1L\sum_{i=1}^L\frac{\binom Li}i \\&=\frac1L\sum_{i=1}^L\sum_{j=1}^L\frac{\binom{j-1}{i-1}}i \\&=\frac1L\sum_{i=1}^L\sum_{j=1}^L\frac{\binom ji}j \\&=\frac1L\sum_{j=1}^L\frac{2^j-1}j \end{aligned} $$ 简单算。 第三部分: $$ \begin{aligned} \sum_{i=2}^L\frac{\binom{L-2}{i-2}}{i^2} &=\frac1{L(L-1)}\sum_{i=1}^L\frac{(i-1)\binom Li}i \\&=\frac1{L(L-1)}\sum_{i=1}^L\sum_{j=1}^L\binom{j-1}{i-1}\frac{i-1}i \\&=\frac1{L(L-1)}\sum_{i=1}^L\sum_{j=1}^L\binom ji\frac{i-1}j \\&=\frac1{L(L-1)}\sum_{j=1}^L\frac1j\sum_{i=1}^L\binom ji(i-1) \\&=\frac1{L(L-1)}\sum_{j=1}^L\frac{(\sum_{i=1}^L\binom jii)-(2^j-1)}j \\&=\frac1{L(L-1)}\sum_{j=1}^L\frac{j2^{j-1}-2^j+1}j \end{aligned} $$ 也简单算。 线段树维护一些东西就完了。 仔细一点做到 $O(n+m\log n)$,怎么直接最优解了。 ```cpp void solve() { rd(n), rd(m); pw[0] = 1; rep(i, 1, n) (pw[i] = pw[i - 1] + pw[i - 1]) >= mod && (pw[i] -= mod); inv[1] = 1; rep(i, 2, n) inv[i] = 1ll * (mod - mod / i) * inv[mod % i] % mod; rep(i, 1, n) a[i] = (pw[i] - 1ll) * inv[i] % mod, (b[i] = b[i - 1] + a[i]) >= mod && (b[i] -= mod); rep(i, 1, n) b[i] = 1ll * b[i] * inv[i] % mod; rep(i, 1, n) c[i] = (c[i - 1] + (1ll * i * pw[i - 1] - pw[i] + 1 + mod) % mod * inv[i]) % mod; rep(i, 1, n) c[i] = 1ll * c[i] * inv[i] % mod * inv[i - 1] % mod; build(1, 1, n); while (m--) { rd(op); if (op == 1) { rd(l), rd(r), rd(x); maketag(1, l, r, x); } else { rd(l), rd(r); Info dat = query(1, l, r); int L = r - l + 1; int ans1 = 1ll * dat.b * a[L] % mod; int ans2 = 1ll * dat.b * b[L] % mod; int ans3 = (1ll * dat.a * dat.a - dat.b + mod) % mod * c[L] % mod; wrt((0ll + ans1 - ans2 - ans3 + mod + mod) % mod), putchar(10); } } } ``` ### [P10664](/problem/P10664) 单位根反演大学习。 $$ \begin{aligned} &\sum_{i=0}^n\binom niF_i[k\mid i] \\=&\sum_{i=0}^n\binom niF_i\frac1k\sum_{j=0}^{k-1}\omega_k^{ij} \\=&\frac1k\sum_{j=0}^{k-1}\sum_{i=0}^n\binom niF_i\omega_k^{ij} \end{aligned} $$ 记一个多项式 $G(x)=\sum_{i=0}^n\binom niF_ix^i$,原式就是 $\frac1k\sum_{j=0}^{k-1}G(\omega_k^j)$。 然后发现斐波那契很涩啊,直接拆成 $\phi$ 和 $\psi$ 就能二项式反演了。 $$ \boxed{ G(x)=\frac{\sqrt5}5[\phi(1+\phi x)^n-\psi(1+\psi x)^n] } $$ 然后吃对 $5$ 的二次剩余性吃两坨史。 哎卧槽 $p=2$ 怎么这么坏。 被击杀了,老实玩矩阵去了。 $$ G(x)={\begin{pmatrix} x+1 & x\\ x & 1 \end{pmatrix}}^n_{1,1} $$