「总结」容斥。二.反演原理

二.反演原理

0.综述

说一下个人对反演的理解。

反演是一种手段,一种处理已知信息和未知信息关系的手段,用来得到未知信息的方式。也就是以一种既定的手段在较小的时间复杂度内用已知的信息得到未知的信息。

还有$zsq$学长更加浅显的解读。

反演一般就是把一个好看但难算的式子转化成一个难看且难算的式子在转化为一个难看但好算的式子。

先来一个裸一点的反演

下面要说我知道的四种反演。

子集反演,针对的是集合交并的容斥。

二项式反演,针对组合原理的容斥。

莫比乌斯反演,针对约数和倍数的容斥。

斯特林反演,针对集合划分的容斥。

最值反演($Min\_Max$容斥),针对集合元素出现的最值的反演。

1.子集反演。

$$g(S)=\sum\limits_{T\subseteq S}f(T)$$

$$f(S)=\sum\limits_{T\subseteq S}(-1)^{\left|S\right|-\left|T\right|}g(T)$$

这个是裸的容斥,证明的话,奇加偶减自己想想就明白了。

$fr.$小星星。

直接算很麻烦很麻烦很麻烦所以考虑大力容斥可以喵。

限制很多还是$dp$然后,设$dp[i][j][S]$为以$i$为根的子树,$i$在原图中对应了$j$,子树里所有的点都在对应$S$集合中的点,不要求子树一一对应,随便怎么对应都可以的方案。

这个$O(n^3)tree dp$就能够得到。

会有很多点被重复对应,我们显然要容斥。

然后这里学长讲的时候说是随便$yy$了个容斥系数,但是其实这个系数是用子集反演得到的。

设$f(S)$为集合$S$中的没一个元素都有被对应的方案数。

设$g(S)=\sum\limits_{i\subseteq S}dp[1][i][S]$也就是$S$的方案数。

那么:

$$g(S)=\sum\limits_{T\subseteq S}f(T)$$

子集反演得到:

$$f(S)=\sum\limits_{T\subseteq S}(-1)^{\left|T\right| - \left|S\right|}g(T)$$

设$S$为$n$个点的全集,那么我们求得就是:

$$ans=f(S)$$

枚举集合$T$容斥+$dp$即可解决。

复杂度$O(n^32^n)$

$se.$与$FWT$结合,我还没有做过题。

2.二项式反演。

运用最频繁的反演之一。形式很多。

这里写一下最常用的两种形式:

至多形式:

$$g(m)=\sum\limits_{i=0}^{m}\binom{m}{i}f(i)$$

$$f(m)=\sum\limits_{i=0}^{m}(-1)^{m-i}\binom{m}{i}g(i)$$

至少形式:

$$g(m)=\sum\limits_{i=m}^{n}\binom{i}{m}f(i)$$

$$f(m)=\sum\limits_{i=m}^{n}(-1)^{i-m}\binom{i}{m}g(i)$$

证明:

只证明至多形式。

$$f(m)=\sum\limits_{i=0}^{m}(-1)^{m-i}\binom{m}{i}g(i)$$

$$=\sum\limits_{i=0}^{m}\sum\limits_{j=0}^{i}(-1)^{m-i}\binom{m}{i}\binom{i}{j}f(j)$$

$$=\sum\limits_{i=0}^{m}\sum\limits_{j=0}^{i}(-1)^{m-i}\binom{m-j}{i-j}\binom{m}{j}f(j)$$

改变枚举顺序。

$$=\sum\limits_{j=0}^{m}\binom{m}{j}f(j)\sum\limits_{i=j}^{m}(-1)^{m-i}\binom{m-i}{i-j}$$

后面的部分是$m-j$行二项式系数的奇偶错减,只有$j=m$的时候为1,其余为0。

$$=\sum\limits_{j=0}^{m}\binom{m}{j}f(j)[j=m]$$

$$=f(m)$$

证毕。

题目。

$fr.$放棋子。

这个题看起来很像二项式反演。

发现每个颜色的棋子必然要占据他所在的行和列。

设$g[i][j][k]$为第$i$种颜色的棋子占据$j$行$k$列的方案数。

$f[i][j][k]$为前$i$种颜色占了$j$行$k$列的方案数。

如果我们的到了$g$,就可以做二维背包求出$f$.

现在问题转化为求$g$

设至少有$l$行$r$列有棋子的方案为$h(l,r)$,恰好有这么多被占的为$p(l,r)$

那么

$$h(n,m)=\sum\limits_{i=n}^{mxn}\sum\limits_{j=m}^{mxm}\binom{i}{n}\binom{j}{m} p(i,j)$$

$$p(n,m)=\sum\limits_{i=n}^{mxn}\sum\limits_{j=m}^{mxm}(-1)^{i+j}\binom{i}{n}\binom{j}{m}h(i,j)$$

我们发现要求的$g[j][k]=p(j,k)$

这样看起来仍然不是很好算因为我们很难求出$h(i,j)$于是考虑舍弃二项式反演。

没错正解不是二项式反演。

而我拿出这道题的原因就是我考场上推了很久的二项式反演。

这也提醒我:用二项式反演之前要注意是否有一个已知函数是极便于求出的,如果不是,那么反演即使本身正确,也难以在正确的复杂度内求解。

正解是补集容斥。

$$g[n][m]=\binom{nm}{num}-\sum\limits_{i=0}^{n}\sum\limits_{j=0}^{m}\binom{n}{i}\binom{m}{j}g[i][j]$$

$se.$染色

这个是真的二项式反演。

设$f(k)$为恰好出现$S$次的颜色有$k$个的方案数,$g(k)为至少$。

那么:

$$g(k)=\binom{m}{k}\binom{n}{kS}\frac{(kS)!}{(S!)^k}(m-k)^{n-kS}$$

$$g(k)=\sum\limits_{i=k}^{m}\binom{i}{k}f(i)$$

二项式反演得到

$$f(k)=\sum\limits_{i=k}^{m}(-1)^{i-k}\binom{i}{k}g(i)$$

再继续推一推就会发现是卷积的形式,这个时候我们$FFT$一发就可以在$O(mlogm)$时间内求出没一个$f(k)$的取值,乘权累加即可。

3.莫比乌斯反演。

这个比较常见了吧。现在在$hzoi$都烂大街了。

定义几个常用的函数,当作笔记了。

单位函数$$I(n)=1$$

元函数$$e(n)=[n=1]$$

约数个数函数$$d(n)=\sum\limits_{d|n}I$$

约数和函数$$\sigma(n)=\sum\limits_{d|n}d$$

标志函数$$id(n)=n$$

莫比乌斯函数$$mu(n)=\begin{cases}
(-1)^w &\ n=\prod\limits_{i=1}^{w}p_i&\\0 &\
n=p^2\prod\limits_{i=1}^{w}p_i^{c_i}&\end{cases}$$

欧拉函数$$\varphi(n)=\sum\limits_{i=1}^{n}[i\perp n]$$

基本上正常的反演就只用到这些函数了。但是不包括某$DZY$系列。

狄利克雷卷积:定义符号$*$为狄利克雷卷积。

对于三个函数个函数:$h,g,f$.

$$f=h*g->f(n)=\sum\limits_{d|n}h(d)g(\frac{n}{d})$$

结论:两个积性函数的狄利克雷卷积仍然是积性函数。

证明:

设$n=\_*p^c,a\perp b,ab=n$

$$f(n)=\sum\limits_{d|n}h(d)g(\frac{n}{d})$$

$$f(a)=\sum\limits_{d|a}h(d)g(\frac{a}{d})=\sum\limits_{d|a}\prod\limits_{p^c|d}h(p^c)\prod\limits_{q^c|\frac{a}{d}}g(q^c)$$

$$f(b)=\sum\limits_{d|b}\prod\limits_{p^c|d}h(p^c)\prod\limits_{q^c|\frac{b}{d}}g(q^c)$$

所以$n$的约数个数是$a,b$的个数的乘积,而这些约数都是由$a,b$的质因子任意组合得到的。

$$f(a)f(b)=\sum\limits_{d|ab}\prod\limits_{p^c|d}h(p^c)\prod\limits_{q^c|\frac{ab}{d}}g(q^c)$$

$$=\sum\limits_{d|ab}h(d)g(\frac{ab}{d})$$

$$=\sum\limits_{d|n}h(d)g(\frac{n}{d})$$

$$=f(n)$$

好了回归莫比乌斯函数。

莫比乌斯反演的核心就在于莫比乌斯函数。

考虑一下它在本质上是一个怎么样的函数。

其实就是把一个数作为一个集合,他的所有质因子作为元素,还有另外一个特殊元素是1。

莫比乌斯函数看似是奇减偶加,其实是集合没有计算1的原因,如果算上了的话,正好就是奇加偶减。

$fr.$LOJ#528求和。

题意就是对于给定的$n,m$求这个式子的值。$n,m<=1e9$

$$\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\mu^2(gcd(i,j))$$

这题可以用莫比乌斯反演暴力通过,而我的做法较为简单。

首先发现后面的式子的值只有$0,1$两种情况,那么只需要用$nm$减去为0的情况即可。

什么时候是0呢?就是$gcd(i,j)$有平方因子的时候。

那么只需要找出所有的以平方数或者平方数的倍数为最大公约数的数对数即可了。

一个看似很显然的答案就是

$$nm-\sum\limits_{d=2}^{min(\sqrt{n},\sqrt{m})}\lfloor\frac{n}{d^2}\rfloor\lfloor\frac{m}{d^2}\rfloor$$

不过是错的。

考虑枚举的合数$d$,发现同样的状态会被他的质因子分别多次计算,而这个合数$d$,刚好是那些质因子的交集。

考虑容斥。

对于一个$d$来说,他会被他的质因子集合多次计算,如果是含有奇数个质因子加上,偶数个就减去,我们要求的最大公约数为平方数的倍数的数的对数。

然而前面有一个负号,那么我们反过来,奇数个减去,偶数个加上。就是莫比乌斯函数了。

那么用莫比乌斯函数容斥得到:

$$ans=nm+\sum\limits_{d=2}^{min(\sqrt{n},\sqrt{m})}\mu(d)\lfloor\frac{n}{d^2}\rfloor\lfloor\frac{m}{d^2}\rfloor$$

因为$\mu(1)=1$

所以这个式子还可以更加美妙一些。

$$ans=\sum\limits_{d=1}^{min(\sqrt{n},\sqrt{m})}\mu(d)\lfloor\frac{n}{d^2}\rfloor\lfloor\frac{m}{d^2}\rfloor$$

可以$\sqrt{n}$求解。

$se.$莫比乌斯函数的性质。

这个东西与其说是莫比乌斯函数的性质,不如说莫比乌斯函数本就是一种为了满足他所持有的性质的要求而被创造的一种函数。

有人想要一种函数$\mu$,满足以下一种性质:

$$\sum\limits_{d|n}\mu(d)=[n=1]$$

我们考虑把一个数看作一个集合,集合中的元素是$1$和他所有的质因子。那么容斥的集合大小也就有了。

用二项式定理证明。

证明:

$n=1$显然成立。

如果$n!=1$

设$n=\prod\limits_{i=1}^{w}p_i^{c_i}$

那么,由于含有两个及以上同样质因子的约数的贡献均为0,在加上二项式定理的推导,得到:

$$\sum\limits_{d|n}\mu(d)=\sum\limits_{i=1}^{w}(-1)^i\binom{w}{i}=(1-1)^w$$

发现没有,还是最开始用的$(1-1)^n$容斥的式子,一开始就说了,所有容斥的本质,就是奇加偶减。

用这个性质来证明莫比乌斯反演。

莫比乌斯反演的公式:

$$g(n)=\sum\limits_{d|n}f(d)->f(n)=\sum\limits_{d|n}\mu(d)g(\frac{n}{d})$$

证明:

$$f(n)=\sum\limits_{d|n}\mu(d)\sum\limits_{r|\frac{n}{d}}f(r)$$

$$\ \ =\sum\limits_{r|n}f(r)\sum\limits_{d|\frac{n}{r}}\mu(d)$$

$$\ \ =\sum\limits_{r|n}f(r)[\frac{n}{r}=1]$$

$$\ \ =\sum\limits_{r|n}f(r)[n=r]$$

$$\ \ =f(n)$$

还有一种倍数形式:

$$g(n)=\sum\limits_{n|d}f(d)->f(n)=\sum\limits_{n|d}\mu(\frac{d}{n})g(d)$$

证明不再赘述。

$th.$jzptab

$$\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}lcm(i,j)$$

推就玩事了。一下向下取整均省略。

$$\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\frac{ij}{gcd(i,j)}$$

枚举$gcd$提前。

$$\sum\limits_{d=1}^{n}\sum\limits_{i=1}^{\frac{n}{d}}\sum\limits_{j=1}^{\frac{m}{d}}ijd[gcd(i,j)=1]$$

$$\sum\limits_{d=1}^{n}d\sum\limits_{i=1}^{\frac{n}{d}}\sum\limits_{j=1}^{\frac{m}{d}}ij$$

$$\sum\limits_{d=1}^{n}d\sum\limits_{i=1}^{\frac{n}{d}}\sum\limits_{j=1}^{\frac{m}{d}}ij\sum\limits_{g|gcd(i,j)}\mu(g)$$

$$\sum\limits_{d=1}^{n}d\sum\limits_{g=1}^{\frac{n}{d}}\mu(g)g^2\sum\limits_{i=1}^{\frac{n}{dg}}\sum\limits_{j=1}^{\frac{m}{dg}}ij$$

发现后面是两个公差为1的等差数列求和再相乘。

$$\frac{1}{4}\sum\limits_{d=1}^{n}d\sum\limits_{g=1}^{\frac{n}{d}}\mu(g)g^2(1+\frac{n}{dg})(\frac{n}{dg})(1+\frac{m}{dg})(\frac{m}{dg})$$

令$T=dg$

$$\frac{1}{4}\sum\limits_{d=1}^{n}d\sum\limits_{d|T}^{n}\mu(\frac{T}{d})(\frac{T}{d})^2(1+\frac{n}{T})(\frac{n}{T})(1+\frac{m}{T})(\frac{m}{T})$$

原文地址:https://www.cnblogs.com/Lrefrain/p/11644307.html

时间: 2024-10-09 09:21:51

「总结」容斥。二.反演原理的相关文章

「总结」容斥。二.反演原理 5.划分容斥

参考的$blogs$这篇 还有具体数学. 是斯特林反演了. 首先必要的是两类斯特林数. 在定义上很重要的区别就是第一类是划分排列,而第二类是划分组合. 性质上比较重要的就是第一类是将升降幂转化为通常幂,第二类则反之. f(n)=∑k=0n{nk}g(k)?g(n)=∑k=0n(−1)n−k[nk]f(k) $fr.$第一类斯特林数. $$\left[\begin{array}{c}n\\k\end{array}\right]$$ $n$个元素划分为$k$个集合,每个集合内圆排列的方案数. 根据定

「总结」容斥。三.广义容斥

首先让我们考虑反演的真正原理. $fr.$反演原理 对于两个函数$f$和$g$. 我们知道: $$g(n)=\sum\limits_{i=0}^{n}a_{n,i}f(i)$$ $$f(n)=\sum\limits_{i=0}^{n}b_{n,i}g(i)$$ 将第一个式子代入第二个. $$\begin{array}{rcl}\\f(n)&=&\sum\limits_{i=0}^{n}b_{n,i}\sum\limits_{j=0}^{i}a_{i,j}f(j)\\&=&\

csp-s模拟测试59(10.4)「Reverse」(set)&#183;「Silhouette」(容斥)

A. Reverse 菜鸡wwb又不会了..... 可以线段树优化建边,然而不会所以只能set水了 发现对于k和当前反转点固定的节点x确定奇偶性所到达的节点奇偶性是一定的 那么set维护奇偶点,然后每次set找点删点注意边界 set在删点后原来的迭代器会玄学出错,xuefeng好像被坑了,所以lowerbound一下就不用++了 B. Silhouette 很玄学的容斥 考场多QJ了18分,因为如果1-n是个序列,好像就是一个简单的容斥..... 然后用能发现是以“L”形的形状向右推的,随便乘一

「JSOI2019」神经网络(容斥+组合计数+背包dp)

Address luogu5333 loj3102 Solution 容易发现,一条哈密顿回路本质上就是:把每棵树都拆成若干条有向路径,再把所有的有向路径连接成环,环上的相邻两条有向路径不可以来自同一棵树. 先求出 \(g_{i,j}\) 表示把第 \(i\) 棵树拆成 \(j\) 条有向路径的方案数. 考虑 \(\text{dp}\),记 \(f_{u,i,0/1/2/3}\) 分别表示:\(u\) 的子树拆成 \(i\) 条路径,\(u\) 是路径起点,是路径终点,单点成路径,既不是路径起点

「PKUWC2018」猎人杀(概率+容斥+分治NTT)

https://loj.ac/problem/2541 很有意思的一道题目. 直接去算这题话,因为分母会变,你会发现不管怎么样都要枚举顺序. 考虑把题目转换,变成分母不会变的,即对于一个已经删过的,我们不把它从分母中剔除,但是,每一次的选择需要一直选直到选了一个没有被删过的. 然后再考虑怎么计算,这时就可以容斥了: 1既然要最后删除,我们枚举一个集合S一定在它之后被删,其它的随意. 设\(sw\)为\(\sum_{i\in S}w[i]\),\(W=\sum_{i=1}^n w[i]\) 最后答

「kuangbin带你飞」专题十二 基础DP

layout: post title: 「kuangbin带你飞」专题十二 基础DP author: "luowentaoaa" catalog: true tags: mathjax: true - kuangbin - 动态规划 传送门 A.HDU1024 Max Sum Plus Plus 题意 给你N个数,然后你分成M个不重叠部分,并且这M个不重叠部分的和最大. 思路 动态规划最大m字段和,dp数组,dp[i][j]表示以a[j]结尾的,i个字段的最大和 两种情况:1.第a[j

「luogu3380」【模板】二逼平衡树(树套树)

「luogu3380」[模板]二逼平衡树(树套树) 传送门 我写的树套树--线段树套平衡树. 线段树上的每一个节点都是一棵 \(\text{FHQ Treap}\) ,然后我们就可以根据平衡树的基本操作以及线段树上区间信息可合并的性质来实现了,具体细节看代码都懂. 参考代码: #include <algorithm> #include <cstdlib> #include <cstdio> #define rg register #define file(x) freo

「BOI2007」Mokia

「BOI2007」Mokia 传送门 把查询拆成四部分然后容斥计算答案(二维前缀和) 然后 \(\text{CDQ}\) 分治算答案. 参考代码: #include <algorithm> #include <cstdio> #define rg register #define file(x) freopen(x".in", "r", stdin), freopen(x".out", "w", std

大數據的「真面目」及其運用

大數據的定義 近年來,人們對「大數據」的關注度日益提高.這都歸因於麥肯錫全球研究院在2011年發布的研究報告.該報告認為人們即將迎來一個利用規模大到超出現有數據處理系統能力的巨量信息時代,並暗示戰略性地利用這些信息數據,就有可能產生巨大的商業機會. 那麼大數據到底是什麼呢?從字面來看,它指的是以現有信息處理技術無法應對的龐大信息量.而實際上,當我們將儲蓄了各種服務的使用信息數據與用戶的屬性信息相結合,並在這些信息數據發生時能夠全量獲取,就被稱做大數據. 典型的是互聯網服務的利用數據.另外還包括零