原理
例题
loj6485 LJJ学二项式定理
首先枚举$i\pmod 4$的余数$t$,然后转化成对于每一个$t$,求
单位根反演:
最后面的那一坨东西,由二项式定理知$(1+x)^n = \sum_{i=0}^n {n\choose i}x^i$,所以:
直接算就可以了。
uoj450【集训队作业2018】复读机
考虑一个复读机复读次数的生成函数:
而我们要算的实际上是$n! \cdot F^k(x) [x^n]$。
对$F(x)$进行单位根反演:
$1\over d$是常数,我们先把它忽视掉,最后再在答案里乘上一个$1\over d^k$。
考虑$F^k(x)$的组合意义,相当于对于这$k$个多项式,从每一个里面选一项相乘,所有的方案得到的乘积的和。枚举$e^{\omega^jx}$被选的次数$p_j$,得到
而
直接计算,复杂度$O(k^d \log n)$。
bzoj3328 PYXFIB
设
则我们相当于要求出
对前面的那个括号里面的东西单位根反演,得到
其中$E$表示单位矩阵。
直接矩阵快速幂计算,时间复杂度为$O(2^3 \cdot \log n \cdot k)$。
loj3058 「HNOI2019」白兔之舞
设矩阵$A$是满足$A_{i,j} = w(i,j)$的$n\times n$的矩阵。
走$m$步的方案数为${L\choose m}T_{x,y}$,其中$T=A^m$。
则对于每一个$t$,我们需要求出
单位根反演之后得到
对于每一个$j$,分别算出$F_j = (\omega_k^j A+ E)^L$,设$f_j$为$F_j$的$x$行$y$列的元素,则$t$的答案就是
由于$-tj={t\choose 2}+{j\choose 2}-{t+j\choose 2}$,所以
这是一个卷积的形式,用MTT优化一下就可以了。
总时间复杂度$O(kn^3\log L + k\log k)$。