笔记 - 单位根反演

单位根反演

单位根,一个耳熟能详的东西。

单位根 \(\omega_n\) 定义为,\(x^n=1\) 的解中,不等于 \(1\),辐角最小的那个。

然后 \(w_n\)\(0...n-1\) 次幂,正好可以遍历 \(x^n=1\) 的所有解。

然后 \(\omega_n\) 有一些有趣的性质

  1. 幂可以模 \(n\)

    显然,因为 \(n\) 次幂相当于向量转一圈,然后转了个寂寞,所以可以随便的增加 / 减少

  2. \(\dfrac{n}{2}\) 次幂相当于取负

显然,转半圈转到对面去

这两个性质很显然,但您想必已经明白了它的妙处:它的幂,就相当于在转

单位复根转转转

然后它就可以用来解决一些,与倍数有关的问题 —— 可以把一个倍数的限制条件转化成幂

反演式

\(\sum\limits_{i=0}^{n-1} (\omega_n^k)^i=n\times [n|k]\)

这本质是一个等比数列求和。右边会出现一个条件判断,是因为等比数列求和要分公比是否为 \(1\) 来讨论。

然后就讨论一下 \(\omega_n^k\) 是否为 \(1\),就可以证明了

用的时候可以把 \(n\) 移到左边去,然后单独转化一个 \([n|k]\)

千万别忘了除掉那个 \(n\)

顺便再提一嘴,用的时候一般还会带一个组合数,然后变成二项式定理的形式

例题

loj 6247

非常板子

先变成 \(\sum\limits_{i=0}^{n} [k|i] \binom{n}{i}\)

然后把整除换成单位根反演式子,交换一下求和符号,二项式定理

\[=\sum\limits_{i=0}^{n} \sum\limits_{p=0}^{k-1} (\omega_{k}^{i})^p \binom{n}{i}\\ =\sum\limits_{p=0}^{k-1} \sum\limits_{i=0}^{n} (\omega_k^{p})^i\binom{n}{i}\\ =\sum\limits_{p=0}^{k-1} (\omega_k^{p}+1)^n \]

然后 \(k\)\(2^{20}\) 级别。直接做。

小小总结一下

单位根反演,其实就是把一个漂亮的求和,加上一个倍数的限制

然后这时候可以利用单位根的转转转,把倍数换成原来完整的求和

loj 6485

又是一个组合数套一个幂再套一个倍数

这里稍微一点变化是,我们先枚举 %4 余多少,假设是 \(k\) ,然后去算贡献,完了乘以 \(a_k\)

换句话说就是算 \(a[0,1,2,3]\) 分别是多少系数

式子略

bzoj 3328

还是老套路,这个枚举倍数在做数论函数题的时候见惯了

直接变成

\[\sum\limits_{k|i} \binom{n}{i} F_i \]

其中 \(F_i\) 是斐波那契

然后这里又有组合数,按套路,要找一个幂来

斐波那契,幂...矩阵快速幂!

\[A= \begin{bmatrix} 1 & 1\\ 1 & 0 \end{bmatrix} \]

然后 \(F_n\) 就是 \(A^n\) 的左上角。这里我们先把矩阵搞出来,最后一步再取左上角。

答案的矩阵

\[=\sum\limits_{k|i} \binom{n}{i}A^i\\ =\sum\limits_{i=0}^{n} \sum\limits_{p=0}^{k-1} (\omega_k^i)^p A^i\binom{n}{i}\\ =\sum\limits_{p=0}^{k-1} \sum\limits_{i=0}^{n} (\omega_k^p)^iA^i\binom{n}{i}\\ =\sum\limits_{p=0}^{k-1} (\omega_k^pA+I)^n \]

其中 \(I\) 是单位矩阵

然后发现 \(k\) 很小,直接做

思考:题目中的 \(p\equiv 1\pmod{k}\) 是做甚么用的?

posted @ 2021-02-16 22:53  Flandre-Zhu  阅读(112)  评论(0编辑  收藏  举报