单位根反演

单位根反演,其实就一个式子。

\[[n|a]=\frac 1n\sum_{k=0}^{n-1}w_n^{ak} \]

证明在我的 FFT 博客里边。

正经做题的时候由于经常对大质数取模,所以单位根一般都是原根。

主要用于一类带着取模的东西,因为 \([i\bmod j=k]\) 就是 \([j|i-k]\)

#lojj6485 LJJ 学二项式定理

题意:求

\[\sum_{i=0}^n\binom nis^ia_{i\bmod 4}\bmod {998244353} \]

首先题面上给你摆着二项式定理了而且这玩意长得就很像二项式定理。那么我们尝试拆一下凑出来个二项式定理。

\[\begin{aligned} &\sum_{i=0}^n\binom nis^ia_{i\bmod 4}\\ =&\sum_{i=0}^n\binom nis^i\sum_{j=0}^3a_j[i\bmod 4=j]\\ =&\sum_{i=0}^n\binom nis^i\sum_{j=0}^3a_j[4|i-j]\\ =&\sum_{i=0}^n\binom nis^i\sum_{j=0}^3a_j\frac 14\sum_{k=0}^3w_4^{k(i-j)}\\ =&\frac 14\sum_{j=0}^3a_j\sum_{k=0}^3w_4^{-kj}\sum_{i=0}^n\binom nis^iw_4^{ki}\\ =&\frac 14\sum_{j=0}^3a_j\sum_{k=0}^3w_4^{-kj}(sw_4^k+1)^n \end{aligned} \]

完事。\(w_4^1\) 就是 \(g^{\frac {(mod-1)}4}\)

要不然以后这种数学专题能不放代码就不放了吧。(主要是懒得写了)

bzoj3328 PYXFIB

题意:求

\[\sum_{i=0}^{\lfloor \frac nk\rfloor}\binom n{ik}F_{ik}\bmod p \]

其中 \(F_{ik}\) 为斐波那契数列第 \(ik\) 项,\(k|p-1\)

看到这个仍然套路单位根反演:

\[\begin{aligned} &\sum_{i=0}^{\lfloor \frac nk\rfloor}\binom n{ik}F_{ik}\\ =&\sum_{i=0}^n\binom niF_i[k|i]\\ =&\sum_{i=0}^n\binom niF_i\frac 1k\sum_{j=0}^{k-1}w_k^ij\\ &=\frac 1k\sum_{j=0}^{k-1}\sum_{i=0}^n\binom niF_iw_k^{ij} \end{aligned} \]

想办法给后边凑出来一个幂。事实上我们有结论:对于矩阵 \(A,B\),满足

\[\sum_{i=0}^n\binom niA^iB^{n-i}=(A+B)^n \]

也就是矩阵意义下的二项式定理。那么后边的东西的转移矩阵就是 \((w_k^jA+I)^n\) 了。

P5591 小猪佩奇学数学

题意:求

\[\sum_{i=0}^n\binom nip^i\lfloor\frac ik\rfloor \bmod 998244353 \]

首先你得知道这是个单位根反演。然后得搞出来一个 \(\bmod\)

\[\begin{aligned} &\sum_{i=0}^n\binom nip^i\lfloor\frac ik\rfloor\\ =&\sum_{i=0}^n\binom nip^i\frac{i-i\bmod k}k\\ =&\frac 1k\left(\sum_{i=0}^n\binom nip^ii-\sum_{i=0}^n\binom nip^i(i\bmod k)\right) \end{aligned} \]

分别看前面后面。

前面:

\[\sum_{i=0}^n\binom nip^ii \]

这个 \(i\) 在外边很烦人,把他扔到组合数里边去。

\[\begin{aligned} &=n\sum_{i=0}^n\binom{n-1}{i-1}p^i\\ &=n\sum_{i=0}^{n-1}\binom {n-1}ip^i\\ &=np(p+1)^{n-1} \end{aligned} \]

后面:

\[\begin{aligned} &\sum_{i=0}^n\binom nip^i(i\bmod k)\\ =&\sum_{i=0}^n\binom nip^i\sum_{j=0}^{k-1}j[i\bmod k=j]\\ =&\sum_{i=0}^n\binom nip^i\sum_{j=0}^{k-1}j\frac 1k\sum_{d=0}^{k-1}w_k^d(i-j)\\ =&\frac 1k\sum_{j=0}^{k-1}j\sum_{d=0}^{k-1}w_k^{-dj}\sum_{i=0}^n\binom nip^iw_k^{di}\\ =&\frac 1k\sum_{d=0}^{k-1}(pw_k^d+1)^n\sum_{j=0}^{k-1}jw_k^{-dj} \end{aligned} \]

后边这一团东西其实就是个等差乘等比。
\(S(n,k)=\sum_{i=0}^{n-1}ik^i\) ,则

\[\begin{aligned} &kS(n,k)-S(n,k)\\ =&\sum_{i=0}^{n-1}ik^{i+1}-\sum_{i=0}^{n-1}ik^i\\ =&\sum_{i=1}^n(i-1)k^i-\sum_{i=0}^{n-1}ik^i\\ =&-\sum_{i=0}^{n-1}k^i+1+(n-1)k^n\\ =&\frac {1-k^n}{k-1}+1+(n-1)k^n \end{aligned} \]

那么由于 \(k=w_k^{-dj}\),则 \(k^n=1\) 。代入得:

\[(k-1)S(n,k)=n\\ S(n,k)=\frac n{k-1} \]

这是 \(k\neq 1\) 的情况。\(k=1\) 的更简单,直接就是 \(\frac {n(n+1)}2\)。完事。

P5548 [BJ United Round #3] 押韵

uoj#450. 【集训队作业2018】复读机 的加强版。

首先列出一种的生成函数:

\[\sum_{d|i}\frac {x^i}{i!} \]

单位根反演化一下:

\[\frac 1d\sum_{i=0}\frac{x^i}{i!}\sum_{k=0}^{d-1}w_d^{ik}\\ =\frac 1d\sum_{k=0}^{d-1}e^{w_d^k} \]

所以最后就是要求

\[[x^n]\left(\frac 1d\sum_{k=0}^{d-1}e^{w_d^k}\right)^k \]

开始分讨。

d=1

显然是 \(k^n\)

d=2

原式变为

\[\begin{aligned} &[x^n]\left(\frac{e^x+e^{-x}}2\right)^k\\ &=\frac 1{2^k}[x^n](e^x+e^{-x})^k\\ =&\frac 1{2^k}[x^n]\sum_{i=0}^k\binom kie^{ix}e^{-x(n-i)}\\ =&\frac 1{2^k}\sum_{i=0}^k\binom ki(2i-k)^n \end{aligned} \]

d=3

原式变为

\[\begin{aligned} &[x^n]\left(\frac{e^x+e^{w_3}+e^{w_3^2}}3\right)^k\\ =&\frac 1{3^k}[x^n]\sum_{i=0}^k\binom ki\sum_{j=0}^i\binom ije^{ix}e^{jw_3x}e^{(k-i-j)w_3^2x}\\ =&\frac 1{3^k}\sum_{i=0}^k\binom ki\sum_{j=0}^i\binom ij(i+jw_3+(k-i-j)w_3^2)^n \end{aligned} \]

d=4

上边两层求和已经 \(O(k^2\log n)\) 了,现在如果再往下拆的话 \(2000\) 的范围铁 T。得采取一些人类智慧。

回到原来的式子:

\[[x^n]\left(\frac 1d\sum_{k=0}^{d-1}e^{w_d^k}\right)^k \]

最后其实也就是一堆 \(e^{a+bi}\) 加起来。那么就相当于每次选 \((1,0),(0,1),(-1,0),(0,-1)\) 四个向量中的一个走,走 \(k\) 步到达 \((a,b)\) 的方案数,套路转坐标轴然后组合数算即可。

d=6

最为人类智慧的一部分。我们发现(鬼知道怎么发现的) \(w_6\) 满足 \(w-1=w^2\) ,所以所有的根都可以赋为一个横坐标单位长度 \(1\) ,纵坐标单位长度 \(w\) 的坐标,分别为 \((1,0),(0,1),(-1,1),(-1,0),(0,-1),(1,-1)\)

这个不好组合意义,考虑操作一下生成函数。先所有坐标 \(+1\) 去掉负数,然后列出二元生成函数

\[F(x,y)=x^2y+xy^2+y^2+y+x+x^2 \]

那么我们就要求 \(G(x,y)=F(x,y)^k\) 的所有系数。套路对 \(x\) 求偏导然后表示自己(好麻烦):

\[G'(x,y)=kF(x,y)^{k-1}F'(x,y)\\ F(x,y)G'(x,y)=kG(x,y)F'(x,y)\\ F'(x,y)=2xy+2x+y^2+1 \]

现在只有 \(G\)\(G'\) 两个未知数了,可以递推系数。大概长这样:

\[n[x^ny^m]+(n-1)[x^{n-1}y^m]+(n-1)[x^{n-1}y^{m-1}]+n[x^ny^{m-2}]+(n+1)[x^{n+1}y^{m-2}]+(n+1)[x^{n+1}y^{m-1}]\]

\[=k[x^ny^m]+2k[x^{n-1}y^{m-1}]+2k[x^{n-1}y^m]+k[x^ny^{m-2}] \]

没了。白兔之舞到时候再说。

posted @ 2023-01-29 19:08  gtm1514  阅读(50)  评论(0编辑  收藏  举报