各类反演杂题题解(待补充

yxy之前有不喜欢打逗号的习惯,giao哪儿养的怪习惯啊233(轻喷

CF997C Sky Full of Stars

f ( i , j ) f(i,j) f(i,j) 表示有 i i i j j j 列颜色相同 剩下的随便涂 的方案(有重复方案

g ( i , j ) g(i,j) g(i,j) 表示刚好有 i i i j j j 列颜色相同的方案数 (无重复

f ( i , j ) = ∑ x = i n ∑ y = j n ( x i ) ( y j ) g ( x , y ) f(i,j)=\sum_{x=i}^n \sum_{y=j}^n {x\choose i} {y\choose j}g(x,y) f(i,j)=x=iny=jn(ix)(jy)g(x,y)

二项式反演

g ( i , j ) = ∑ x = i n ∑ y = j n ( − 1 ) x + y − i − j ( x i ) ( y j ) f ( x , y ) g(i,j)=\sum_{x=i}^n \sum_{y=j}^n {(-1)}^{x+y-i-j}{x\choose i} {y\choose j}f(x,y) g(i,j)=x=iny=jn(1)x+yij(ix)(jy)f(x,y)

那么答案就是

a n s = 3 n 2 − g ( 0 , 0 ) ans=3^{n^2}-g(0,0) ans=3n2g(0,0)

考虑求 f ( i , j ) f(i,j) f(i,j)

i = 0 , j = 0 i=0,j=0 i=0,j=0 f ( i , j ) = 3 n 2 f(i,j)=3^{n^2} f(i,j)=3n2

i j = 0 ij=0 ij=0 f ( i , j ) = ( n i ) ( n j ) 3 n ( n − i − j ) + i + j f(i,j)={n \choose i}{n \choose j}3^{n(n-i-j)+i+j} f(i,j)=(in)(jn)3n(nij)+i+j

i j ≠ 0 ij\not=0 ij=0 f ( i , j ) = ( n i ) ( n j ) 3 ( n − i ) ( n − j ) + 1 f(i,j)={n \choose i}{n \choose j}3^{(n-i)(n-j)+1} f(i,j)=(in)(jn)3(ni)(nj)+1

直接求 g ( 0 , 0 ) g(0,0) g(0,0) 的话会超时 所以推柿子简化一下
g ( 0 , 0 ) = ∑ i = 0 n ∑ j = 0 n ( − 1 ) i + j f ( i , j ) = ∑ i = 1 n ∑ j = 1 n ( − 1 ) i + j f ( i , j ) + 2 × ∑ i = 1 n ( − 1 ) i f ( i , 0 ) + f ( 0 , 0 ) ∑ i = 1 n ∑ j = 1 n ( − 1 ) i + j f ( i , j ) = ∑ i = 1 n ∑ j = 1 n ( − 1 ) i + j ( n i ) ( n j ) 3 ( n − i ) ( n − j ) + 1 = 3 n 2 + 1 ∑ i = 1 n ( − 1 ) i ( n i ) 3 − i n ∑ j = 1 n ( − 1 ) j ( n j ) 3 − j n + i j = 3 n 2 + 1 ∑ i = 1 n ( − 1 ) i ( n i ) 3 − i n ∑ j = 1 n ( n j ) ( − 3 i − n ) j = 3 n 2 + 1 ∑ i = 1 n ( − 1 ) i ( n i ) 3 − i n ( ( 1 − 3 i − n ) n − 1 ) \begin{aligned} g(0,0)&=\sum_{i=0}^n \sum_{j=0}^n {(-1)}^{i+j}f(i,j) \\ &=\sum_{i=1}^n \sum_{j=1}^n {(-1)}^{i+j}f(i,j)+2\times\sum_{i=1}^{n}(-1)^if(i,0)+f(0,0) \\ \sum_{i=1}^n \sum_{j=1}^n{(-1)}^{i+j}f(i,j)&=\sum_{i=1}^n \sum_{j=1}^n{(-1)^{i+j}}{n \choose i}{n\choose j}3^{(n-i)(n-j)+1} \\ &=3^{n^2+1}\sum_{i=1}^n {(-1)^i}{n \choose i}3^{-in} \sum_{j=1}^n{(-1)^{j}}{n\choose j}3^{-jn+ij} \\ &=3^{n^2+1}\sum_{i=1}^n {(-1)^i}{n \choose i}3^{-in} \sum_{j=1}^n{n\choose j}{(-3^{i-n})}^{j} \\ &=3^{n^2+1}\sum_{i=1}^n(-1)^i{n \choose i}3^{-in}({(1-3^{i-n})^n}-1) \end{aligned} g(0,0)i=1nj=1n(1)i+jf(i,j)=i=0nj=0n(1)i+jf(i,j)=i=1nj=1n(1)i+jf(i,j)+2×i=1n(1)if(i,0)+f(0,0)=i=1nj=1n(1)i+j(in)(jn)3(ni)(nj)+1=3n2+1i=1n(1)i(in)3inj=1n(1)j(jn)3jn+ij=3n2+1i=1n(1)i(in)3inj=1n(jn)(3in)j=3n2+1i=1n(1)i(in)3in((13in)n1)
然后就从后往前套娃求解就可了

[AGC035F] Two Histograms

直接求方案数不好求 所以求重复的方案数(方案数指操作序列的方案数

当一个方案存在 k i = j , l j = i − 1 k_i=j,l_j=i-1 ki=j,lj=i1 就是重复。接下来称这种情况为不合法

按照套路设 f ( i ) f(i) f(i) 为有 i i i 个不合法 剩下的随便取的方案数

g ( i ) g(i) g(i) 为刚好有 i i i 个不合法的方案数 则

f ( i ) = ∑ j = i n ( j i ) g ( j ) f(i)=\sum_{j=i}^{n}{j\choose i}g(j) f(i)=j=in(ij)g(j)

二项式反演

g ( i ) = ∑ j = i n ( − 1 ) j − i ( j i ) f ( j ) g(i)=\sum_{j=i}^{n}{(-1)}^{j-i}{j\choose i}f(j) g(i)=j=in(1)ji(ij)f(j)

直接按照定义求 f ( i ) f(i) f(i)

f ( i ) = ( n i ) ( m i ) i ! ( n + 1 ) m − i ( m + 1 ) n − i f(i)={n \choose i}{m\choose i}i!(n+1)^{m-i}(m+1)^{n-i} f(i)=(in)(im)i!(n+1)mi(m+1)ni

所以答案就是

g ( 0 ) = ∑ i = 0 n ( − 1 ) i ( n i ) ( m i ) i ! ( n + 1 ) m − i ( m + 1 ) n − i g(0)=\sum_{i=0}^{n}{(-1)}^i{n \choose i}{m\choose i}i!(n+1)^{m-i}(m+1)^{n-i} g(0)=i=0n(1)i(in)(im)i!(n+1)mi(m+1)ni

(其实容斥好理解些

LOJ #528. 「LibreOJ β Round #4」求和

n u m = m i n ( n , m ) num=min(n,m) num=min(n,m)
a n s = ∑ i = 1 n ∑ j = 1 m μ 2 ( g c d ( i , j ) ) = ∑ t = 1 n u m μ 2 ( t ) ∑ i = 1 i t ≤ n ∑ j = 1 i j ≤ m ( g c d ( i , j ) = = 1 ) = ∑ t = 1 n u m μ 2 ( t ) ∑ i = 1 i t ≤ n ∑ j = 1 i j ≤ m ∑ d ∣ i   d ∣ j μ ( d ) = ∑ t = 1 n u m μ 2 ( t ) ∑ d = 1 d t ≤ n μ ( d ) ⌊ n d t ⌋ ⌊ m d t ⌋ = ∑ t = 1 n u m ∑ d = 1 d t ≤ n u m μ 2 ( t ) μ ( d ) ⌊ n d t ⌋ ⌊ m d t ⌋ = ∑ d t = 1 d t ≤ n u m ⌊ n d t ⌋ ⌊ m d t ⌋ ∑ t ∣ d t μ 2 ( t ) μ ( d ) \begin{aligned} ans&=\sum_{i=1}^{n}\sum_{j=1}^{m}\mu ^2(gcd(i,j)) \\ &=\sum_{t=1}^{num}\mu ^2(t)\sum_{i=1}^{it\le n}\sum_{j=1}^{ij\le m}(gcd(i,j)==1) \\ &=\sum_{t=1}^{num}\mu ^2(t)\sum_{i=1}^{it\le n}\sum_{j=1}^{ij\le m}\sum_{d|i\ d|j}\mu (d) \\ &=\sum_{t=1}^{num}\mu ^2(t)\sum_{d=1}^{dt\le n}\mu (d){\lfloor\frac{n}{dt}\rfloor}{\lfloor\frac{m}{dt}\rfloor} \\ &=\sum_{t=1}^{num}\sum_{d=1}^{dt\le num}\mu ^2(t)\mu (d){\lfloor\frac{n}{dt}\rfloor}{\lfloor\frac{m}{dt}\rfloor} \\ &=\sum_{dt=1}^{dt\le num}{\lfloor\frac{n}{dt}\rfloor}{\lfloor\frac{m}{dt}\rfloor} \sum_{t|dt}^{}\mu ^2(t)\mu (d) \end{aligned} ans=i=1nj=1mμ2(gcd(i,j))=t=1numμ2(t)i=1itnj=1ijm(gcd(i,j)==1)=t=1numμ2(t)i=1itnj=1ijmdi djμ(d)=t=1numμ2(t)d=1dtnμ(d)dtndtm=t=1numd=1dtnumμ2(t)μ(d)dtndtm=dt=1dtnumdtndtmtdtμ2(t)μ(d)
观察到 ∑ t ∣ d t u 2 ( t ) u ( d ) \sum_{t|dt}^{}u^2(t)u(d) tdtu2(t)u(d) 是两个积性函数卷起来的形式 所以接下来考虑质数次方处的值 我们发现只要在 p 2 p^2 p2 处有值 且值为 μ ( p ) \mu(p) μ(p)

所以 ∑ t ∣ d t u 2 ( t ) u ( d ) = ( d t = = x ) μ x \sum_{t|dt}^{}u^2(t)u(d)=(\sqrt {dt}==x)\mu_x tdtu2(t)u(d)=(dt ==x)μx 预处理根号部分的就麻油啦

LOJ #6244. 七选五

f ( i ) f(i) f(i) 为有 i i i 个空选对 剩下的随便选的方案数, g ( i ) g(i) g(i) 为刚好有 i i i 个空选对的方案数 那么
f ( i ) = ( k i ) ( n − i k − i ) ( k − i ) ! = ∑ j = i k ( j i ) g ( i ) 二 项 式 反 演 一 下 g ( i ) = ∑ j = 1 k ( − 1 ) j − i ( j i ) f ( j ) = ∑ j = 1 k ( − 1 ) j − i ( j i ) ( k j ) ( n − j k − j ) ( k − j ) ! \begin{aligned} f(i)&={k\choose i}{n-i\choose k-i}(k-i)! \\ &=\sum_{j=i}^{k}{j\choose i}g(i) \\ 二项式反演一下 \\ g(i)&=\sum_{j=1}^k{(-1)}^{j-i}{j\choose i}f(j) \\ &=\sum_{j=1}^k{(-1)}^{j-i}{j\choose i}{k\choose j}{n-j\choose k-j}(k-j)! \end{aligned} f(i)g(i)=(ik)(kini)(ki)!=j=ik(ij)g(i)=j=1k(1)ji(ij)f(j)=j=1k(1)ji(ij)(jk)(kjnj)(kj)!
答案就是 g ( x ) g(x) g(x)

[ARC101C] Ribbons on Tree

f ( i ) f(i) f(i) 为强制 i i i 条边不被染色 剩下的点在联通块内随便配对的方案数。

那么

f ( i ) = ∑ j = i n ( j i ) g ( j ) f(i)=\sum_{j=i}^n{j\choose i}g(j) f(i)=j=in(ij)g(j)

所以

g ( i ) = ∑ j = i n ( − 1 ) j − i ( j i ) f ( j ) g(i)=\sum_{j=i}^n{(-1)}^{j-i}{j\choose i}f(j) g(i)=j=in(1)ji(ij)f(j)

g ( 0 ) = ∑ i = 0 n ( − 1 ) i f ( i ) g(0)=\sum_{i=0}^n{(-1)}^if(i) g(0)=i=0n(1)if(i)

d p ( x , y ) dp(x,y) dp(x,y) 表示在 x x x 子树内, x x x 所在的联通块大小是 y y y 的所有方案的容斥系数和(不算 x x x 所在块的贡献)

那么就有转移。

d p ( x , y + z )    ←    d p ( x , y ) × d p ( s o n , z ) dp(x,y+z)\ \ \leftarrow\ \ dp(x,y)\times dp(son,z) dp(x,y+z)    dp(x,y)×dp(son,z)

d p ( x , y )    ←    − ( z − 1 ) ! ! d p ( x , y ) × d p ( s o n , z ) dp(x,y)\ \ \leftarrow\ \ -(z-1)!!dp(x,y)\times dp(son,z) dp(x,y)    (z1)dp(x,y)×dp(son,z)

枚举 y y y z z z 即可,因为每对点只会在他们的 l c a lca lca 处算一次 所以最后时间复杂度为 O ( n 2 ) O(n^2) O(n2)

CF961G Partitions

每个权值的贡献的系数是一样的 所以我们就把题目转化为求这个系数 则
a n s s u m = ∑ i = 1 n i ( n − 1 i − 1 ) S ( n − i , k − 1 ) = ∑ i = 1 n i ( n − 1 i − 1 ) ∑ j = 0 k − 1 ( − 1 ) k − 1 − j ( k − 1 − j ) ! j n − i j ! = ∑ j = 0 k − 1 ∑ i = 1 n ( n − 1 i − 1 ) i ( − 1 ) k − 1 − j ( k − 1 − j ) ! j n − i j ! = ∑ j = 0 k − 1 ( − 1 ) k − 1 − j ( k − 1 − j ) ! j ! ∑ i = 1 n i ( n − 1 i − 1 ) j n − i ∑ i = 1 n i ( n − 1 i − 1 ) j n − i = ∑ i = 1 n ( n − 1 i − 1 ) j n − i + ∑ i = 1 n ( i − 1 ) ( n − 1 i − 1 ) j n − i = ( j + 1 ) n − 1 + ( n − 1 ) ∑ i = 1 n ( n − 2 i − 2 ) j n − i = ( j + 1 ) n − 1 + ( n − 1 ) ( j + 1 ) n − 2 = ( n + j ) ( j + 1 ) n − 2 a n s = s u m ∑ j = 0 k − 1 ( − 1 ) k − 1 − j ( k − 1 − j ) ! j ! ( n + j ) ( j + 1 ) n − 2 \begin{aligned} \frac{ans}{sum}&=\sum_{i=1}^{n}i{n-1\choose i-1}S(n-i,k-1) \\ &=\sum_{i=1}^{n}i{n-1\choose i-1} \sum_{j=0}^{k-1}\frac{{(-1)}^{k-1-j}}{(k-1-j)!} \frac{j^{n-i}}{j!} \\ &=\sum_{j=0}^{k-1}\sum_{i=1}^{n} {n-1\choose i-1} i\frac{{(-1)}^{k-1-j}}{(k-1-j)!} \frac{j^{n-i}}{j!} \\ &=\sum_{j=0}^{k-1} \frac{{(-1)}^{k-1-j}}{(k-1-j)!j!} \sum_{i=1}^{n} i{n-1\choose i-1}{j}^{n-i} \\ \\ \sum_{i=1}^{n} i{n-1\choose i-1}{j}^{n-i}&= \sum_{i=1}^{n}{n-1\choose i-1}{j}^{n-i}+\sum_{i=1}^{n}(i-1){n-1\choose i-1} {j}^{n-i} \\ &={(j+1)}^{n-1}+(n-1)\sum_{i=1}^{n}{n-2\choose i-2}{j}^{n-i} \\ &={(j+1)}^{n-1}+(n-1){(j+1)}^{n-2} \\ &=(n+j){(j+1)}^{n-2} \\ \\ ans&=sum\sum_{j=0}^{k-1} \frac{{(-1)}^{k-1-j}}{(k-1-j)!j!}(n+j){(j+1)}^{n-2} \end{aligned} sumansi=1ni(i1n1)jnians=i=1ni(i1n1)S(ni,k1)=i=1ni(i1n1)j=0k1(k1j)!(1)k1jj!jni=j=0k1i=1n(i1n1)i(k1j)!(1)k1jj!jni=j=0k1(k1j)!j!(1)k1ji=1ni(i1n1)jni=i=1n(i1n1)jni+i=1n(i1)(i1n1)jni=(j+1)n1+(n1)i=1n(i2n2)jni=(j+1)n1+(n1)(j+1)n2=(n+j)(j+1)n2=sumj=0k1(k1j)!j!(1)k1j(n+j)(j+1)n2

LOJ #6181. 某个套路求和题

f ( n ) f(n) f(n) 在质数处为 − 1 -1 1 ,有平方因子时为 0 0 0 ,其余为 1 1 1

考虑算出无平方因子的个数,再减去质数的个数。

算质数的个数就是 M i n 25 Min25 Min25 筛计算。时间 O ( n 0.75 log ⁡ n ) O(\frac{n^{0.75}}{\log n}) O(lognn0.75)

无平方因子的个数也就是算 ∑ μ 2 \sum \mu^2 μ2 ,记 p ( x ) = max ⁡ d 2 ∣ x { d } p(x)=\max_{d^2|x}\{d\} p(x)=maxd2x{d}
∑ i = 1 n μ 2 ( i ) = ∑ i = 1 n [ p ( i ) = 1 ] = ∑ d = 1 n μ ( d ) ⌊ n / d 2 ⌋ P S : H x  表示  p  是  x  的倍数的数的个数,  h x  表示  p  是  x  的数的个数,莫比乌斯反演一下即可  \begin{aligned} &\sum_{i=1}^n \mu^2(i) \\ =&\sum_{i=1}^{n}[p(i)=1] \\ =&\sum_{d=1}^{n}\mu(d)\lfloor n/d^2\rfloor\\ & PS: H_x\text{ 表示 }p \text{ 是 }x\text{ 的倍数的数的个数, }\\ &h_x \text{ 表示 }p \text{ 是 }x\text{ 的数的个数,莫比乌斯反演一下即可 } \end{aligned} ==i=1nμ2(i)i=1n[p(i)=1]d=1nμ(d)n/d2PS:Hx 表示 p  x 的倍数的数的个数, hx 表示 p  x 的数的个数,莫比乌斯反演一下即可 
第一步到第二步就是莫比乌斯反演一下就可以了。已经时个整除分块的形式了, O ( n ) O(\sqrt n) O(n ) 计算答案。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值