式子:
\[[n \mid d] = \frac{1}{n} \sum\limits_{i = 0}^{n - 1} \omega_n^{id}
\]
最常见的应用是 \([x \equiv y \pmod n] = [n \mid (x - y)] = \sum\limits_{i = 0}^{n - 1} \omega_n^{(x - y)i}\)。
单位根反演入门题。
\[\sum\limits_{i = 0}^n \binom{n}{i} m^i a_{i \bmod 4}
\]
\[= \sum\limits_{i = 0}^n \binom{n}{i} m^i \sum\limits_{j = 0}^3 [4 \mid (i - j)] a_j
\]
\[= \frac{1}{4} \sum\limits_{i = 0}^n \binom{n}{i} m^i \sum\limits_{j = 0}^3 a_j \sum\limits_{k = 0}^3 \omega_4^{(i - j)k}
\]
\[= \frac{1}{4} \sum\limits_{j = 0}^3 a_j \sum\limits_{k = 0}^3 \omega_4^{-jk} \sum\limits_{i = 0}^n \omega_4^{ik} m^i
\]
\[= \frac{1}{4} \sum\limits_{j = 0}^3 a_j \sum\limits_{k = 0}^3 \omega_4^{-jk} (m \omega_4^k + 1)^n
\]
我们知道在模 \(998244353\) 意义下 \(\omega_4 = g^{\frac{mod - 1}{4}}\),其中 \(g\) 为 \(998244353\) 的原根。这样就可以算了。
\(d = 1\) 时答案显然为 \(k^n\)。
下面只讨论 \(d = 3\) 的情况,\(d = 2\) 类似。
设每个人的指数型生成函数(EGF)为 \(G(x) = \sum\limits_{i = 0}^{+\infty} [3 \mid i] \frac{x^i}{i!}\)
欲求:
\[n! G(x)^k [x^n]
\]
先化 \(G(x)\):
\[G(x) = \frac{1}{3} \sum\limits_{i = 0}^{+\infty} \sum\limits_{j = 0}^2 \frac{(\omega_3^jx)^i}{i!}
\]
\[= \frac{1}{3} \sum\limits_{j = 0}^2 \sum\limits_{i = 0}^{+\infty} \frac{(\omega_3^jx)^i}{i!}
\]
\[= \frac{1}{3} \sum\limits_{j = 0}^2 e^{w_3^j x}
\]
运用的公式是 \(\sum\limits_{i = 0}^{\infty} \frac{(kx)^i}{i!} = e^{kx}\)。
我们枚举 \(k\) 次方中有 \(a_0\) 个选了 \(j = 0\),\(a_1\) 个选了 \(j = 1\),\(a_2\) 选了 \(j = 2\),那么:
\[n! G(x)^k = \frac{n!}{3^k} \sum\limits_{a_0 + a_1 + a_2 = k} e^{(a_0 \omega_3^0 + a_1 \omega_3^1 + a_2 \omega_3^2)x} \binom{k}{a_0, a_1, a_2}
\]
把上面的公式逆过来,可得 \(e^{kx} = \sum\limits_{i = 0}^{\infty} \frac{(kx)^i}{i!}\),因此:
\[n! [x^n] G(x)^k = \frac{1}{3^k} \sum\limits_{a_0 + a_1 + a_2 = k} (a_0 \omega_3^0 + a_1 \omega_3^1 + a_2 \omega_3^2)^n \binom{k}{a_0, a_1, a_2}
\]
暴力枚举 \(a_0, a_1, a_2\) 即可,时间复杂度 \(O(k^{d - 1} \log n)\)。
自己推了一页草稿纸(B5)推出来了![]()
考虑 \(\left\lfloor\frac{i}{m}\right\rfloor = \frac{i - i \bmod m}{m}\),分两类计算。
\[\sum\limits_{i = 0}^n \binom{n}{i} p^i i
\]
\[= np \sum\limits_{i = 0}^{n - 1} \binom{n - 1}{i} p^i
\]
\[= np (p + 1)^{n - 1}
\]
\[\sum\limits_{i = 0}^n \binom{n}{i} p^i (i \bmod m)
\]
\[= \sum\limits_{i = 0}^n \binom{n}{i} p^i \sum\limits_{j = 0}^{m - 1} [m \mid (i - j)] j
\]
\[= \frac{1}{m} \sum\limits_{i = 0}^n \binom{n}{i} p^i \sum\limits_{j = 0}^{m - 1} j \sum\limits_{k = 0}^{m - 1} \omega_m^{(i - j)k}
\]
\[= \frac{1}{m} \sum\limits_{j = 0}^{m - 1} j \sum\limits_{k = 0}^{m - 1} \omega_m^{-jk} \sum\limits_{i = 0}^n \binom{n}{i} (p \omega_m^k)^i
\]
\[= \frac{1}{m} \sum\limits_{j = 0}^{m - 1} j \sum\limits_{k = 0}^{m - 1} \omega_m^{-jk} (p \omega_m^k + 1)^n
\]
\[= \frac{1}{m} \sum\limits_{k = 0}^{m - 1} (p \omega_m^k + 1)^n \sum\limits_{j = 0}^{m - 1} j (\omega_m^{-k})^j
\]
设 \(f(x) = \sum\limits_{i = 0}^{m - 1} i x^i\),那么原式等于:
\[= \frac{1}{m} \sum\limits_{k = 0}^{m - 1} (p \omega_m^k + 1)^n f(\omega_m^{-k})
\]
现在考虑求 \(f(x)\)。
\[f(x) = \sum\limits_{i = 0}^{m - 1} i x^i
\]
\[x f(x) = \sum\limits_{i = 1}^m i x_i
\]
\[(x - 1) f(x) = (m - 1) x^m - \sum\limits_{i = 1}^{m - 1} x^i
\]
设 \(g(x) = \sum\limits_{i = 0}^{m - 1} x^i\),特判 \(x = 1\),那么:
\[f(x) = \frac{(m - 1) x^m - g(x) + 1}{x - 1}
\]
现在考虑求 \(g(x)\)。
\[g(x) = \sum\limits_{i = 0}^{m - 1} x^i
\]
\[x g(x) = \sum\limits_{i = 1}^m x^i
\]
\[(x - 1) g(x) = x^m - 1
\]
\[g(x) = \frac{x^m - 1}{x - 1}
\]
然后就做完了。
第一步是一个经典结论,\(L = m^{\gcd(a, b)} + 1\),\(R = m^{\gcd(c, d)}\)。
因为 \(L \equiv 1 \pmod m\) 且 \(R \equiv 0 \pmod m\),所以可以把问题的范围改成 \([1, n = R - L + 1]\)。
写出选数的生成函数:
\[F(x) = \prod\limits_{i = 1}^n (1 + x^i)
\]
我们希望求所有次数是 \(m\) 的倍数的项的系数之和。
施单位根反演:
\[\begin{aligned} ans & = \sum\limits_{i \ge 0} [m \mid i] [x^i] F(x) \\ & = \frac{1}{m} \sum\limits_{i \ge 0} \sum\limits_{j = 0}^{m - 1} \omega_m^{ij} [x^i] F(x) \\ & = \frac{1}{m} \sum\limits_{j = 0}^{m - 1} \sum\limits_{i \ge 0} (\omega_m^j)^i [x^i] F(x) \\ & = \frac{1}{m} \sum\limits_{j = 0}^{m - 1} F(\omega_m^j) \end{aligned}
\]
考虑对于一个给定的 \(j\) 如何计算 \(F(\omega_m^j)\) 即 \(\prod\limits_{i = 1}^n (1 + (\omega_m^j)^i)\)。
设 \(d = \gcd(m, j)\)。因为有 \(\omega_m^k = \omega_m^{k \bmod m}\),又因为 \(\frac{j}{d}, \frac{2j}{d}, \ldots, \frac{nj}{d}\) 形成了 \(\frac{n}{\frac{m}{d}}\) 个模 \(\frac{m}{d}\) 的剩余系,所以:
\[\begin{aligned} F(\omega_m^j) & = \prod\limits_{i = 1}^n (1 + (\omega_{\frac{m}{d}}^{\frac{j}{d}})^i) \\ & = \prod\limits_{k = 1}^{\frac{m}{d}} (1 + \omega_{\frac{m}{d}}^k)^{\frac{n}{\frac{m}{d}}} \\ & = \prod\limits_{k = 0}^{\frac{m}{d} - 1} (1 + \omega_{\frac{m}{d}}^k)^{\frac{n}{\frac{m}{d}}} \end{aligned}
\]
考虑求这样一个式子:\(\prod\limits_{i = 0}^{n - 1} (1 + \omega_n^i)\)。考虑分圆多项式:
\[x^n - 1 = \prod\limits_{i = 0}^{n - 1} (x - \omega_n^i)
\]
代入 \(x = -1\) 得:
\[(-1)^n - 1 = \prod\limits_{i = 0}^{n - 1} (-1 - \omega_n^i)
\]
\[1 - (-1)^n = \prod\limits_{i = 0}^{n - 1} (1 + \omega_n^i)
\]
也就是当 \(\frac{m}{d}\) 为偶数时,\(F(\omega_m^j) = 0\);否则 \(F(\omega_m^j) = 2^{\frac{n}{\frac{m}{d}}}\)。
把 \(F(\omega_m^j)\) 代入到答案的式子中,有:
\[ans = \frac{1}{m} \sum\limits_{j = 0}^{m - 1} [2 \nmid \frac{m}{\gcd(m, j)}] 2^{\frac{n}{\frac{m}{\gcd(j, m)}}}
\]
直接计算,时间复杂度 \(O(Tm \log n)\),无法通过。
考虑一些 trivial 的优化,枚举 \(d = \gcd(m, j)\),\([0, m - 1]\) 中和 \(m\) 的 \(\gcd\) 为 \(d\) 的数的个数显然为 \(\varphi(\frac{m}{d})\),那么:
\[ans = \frac{1}{m} \sum\limits_{d \mid m} [2 \nmid \frac{m}{d}] 2^{\frac{n}{\frac{m}{d}}} \varphi(\frac{m}{d})
\]
先线性筛出全部 \(\varphi(i)\) 即可计算。时间复杂度降为 \(O(T(\sqrt{m} + d(m) \log n))\),可以通过。