I.Preface
一般来说,我们称以下这种关系叫做反演:
[A_x=sum_{i=0}^{+infty}k(i,x)cdot B_i Leftrightarrow B_x=sum_{i=0}^{+infty}mu(i,x)cdot A_o
]
常见的反演有二项式反演、莫比乌斯反演、子集反演、斯特林反演、单位根反演、拉格朗日反演等等。
为什么需要反演?
有了反演,在很多计数问题中可以有声东击西、围魏救赵、甚至指鹿为马、曲径通幽的效果。我们可以求出其它的一个在我们能力范围内的量,然后把我们要的东西通过反演求出来。这时反演的价值所在。
II.常见反演
1.二项式反演
[A_n=sum_{i=0}^n (-1)^icdot egin{pmatrix} n \ i end{pmatrix}cdot B_i Leftrightarrow B_n=sum_{i=0}^x(-1)^icdot egin{pmatrix} n \ i end{pmatrix}cdot A_i
]
[A_n=sum_{i=0}^n egin{pmatrix} n \ i end{pmatrix}cdot B_i Leftrightarrow B_n=sum_{i=0}^n(-1)^{n-i}cdot egin{pmatrix} n \ i end{pmatrix}cdot A_i
]
[A_n=sum_{i=n}^{+infty} (-1)^icdot egin{pmatrix} i \ n end{pmatrix}cdot B_i Leftrightarrow B_n=sum_{i=n}^{+infty}(-1)^icdot egin{pmatrix} i \ n end{pmatrix}cdot A_i
]
[A_n=sum_{i=n}^{+infty} egin{pmatrix} i \ n end{pmatrix}cdot B_i Leftrightarrow B_n=sum_{i=n}^{+infty}(-1)^{i-n}cdot egin{pmatrix} i \ n end{pmatrix}cdot A_i
]
其中最下面这个式子最重要!二维形式:
[A_{n,m}=sum_{i=n}sum_{j=m} egin{pmatrix} i \ n end{pmatrix}cdot egin{pmatrix} j \ m end{pmatrix}cdot B_{i,j} Leftrightarrow B_{n,m}=sum_{i=n}sum_{j=m}(-1)^{i+j}egin{pmatrix} i \ n end{pmatrix}cdot egin{pmatrix} j \ m end{pmatrix}cdot A_{i,j}
]
二维形式的其它写法也是将一维形式的系数直接相乘以可,证明可以用两次一维形式的反演得到。
2. 莫比乌斯反演
[f(n)=sum_{dmid n}g(d) Leftrightarrow g(n)=sum_{dmid n}mu(d)f(frac{n}{d})
]
[f(n)=sum_{n|d}g(d) Leftrightarrow g(n)=sum_{n|d}mu(frac{d}{n})f(d)
]
3. 斯特林反演
我懒得打了,反正用的少......待补充吧!
III.Usage
纸上谈兵无用,下面直入主题,如何用呢?先说什么时候用吧!题目中有"恰好"字眼的!
比如说 [HAOI2018]染色 中的这段话:
然而小 C 只关心序列的 (N) 个位置中出现次数恰好为 (S) 的颜色种数, 如果恰好出现了 (S) 次的颜色有 (K) 种, 则小 C 会产生 (W_k) 的愉悦度.
再比如 [MtOI2018]情侣?给我烧了!:
你的任务是求出当 (k = 0, 1, ... , n) 时,共有多少种不同的就坐方案满足恰好有 (k) 对情侣是和睦的。
这时可以先旁敲侧击地求出一些量,然后峰回路转用反演定理把我们要求地量求回来。
一般来说这种题目求的那个量往往是"指定有 (k) 个的满足条件",这时和"恰好有 (k) 个"刚刚好可以用二项式反演。如染色这题中,设 (G_k) 为指定了 (k) 中颜色,其他任意的方案;(F_k) 为恰好 (k) 中颜色的方案,于是有:
[G_k=egin{pmatrix} m \ S end{pmatrix} cdot frac{n!}{(S!)^kcdot(2n-2k)!}cdot (m-k)^{n-kS}=sum_{i=k}^{min(frac{n}{S},m)} egin{pmatrix} i \ k end{pmatrix}cdot F_i
]
然后使用二项式反演,并使用 ntt 加速,就可以 (O(nlog n)) 完成这道题了。
还有就是用来解决 (sum [gcd(i,j)=C]) 一类问题,详情可以看我的另一篇博客 SP20173 DIVCNT2 - Counting Divisors (square)。