集合幂级数

首先集合并卷积和集合异或卷积就是$FWT$。

论文里好像就是用反演解释了一下$FWT$。

对于一个集合幂级数$f$,定义它的莫比乌斯变换为$\widehat f$

$\widehat f_S=\sum_{T \in S}f_T$

反演(容斥可以很简单的证明)一下就变成了

$f_S=\sum_{T \in S}(-1)^{(|S|-|T|)} \widehat f_T$

$\widehat h_S=\sum_{L \in S, R\in S}f_Lg_R=(\sum_{L \in S}f_L) (\sum_{R \in S}g_R)=\widehat f_S \widehat g_S$

所以可以先求出$\widehat f$和$ \widehat g$,然后对应项相乘求出$\widehat h$,再反演出$h$。

感觉集合对称差卷积解释的不太好。

子集卷积

$h_s=\sum_{L \in S,R \in S}[L\cup R =S][L\cap R =\emptyset]f_Lg_R$

因为$[L\cup R =S][L\cap R =\emptyset]$可以写成$[L\cup R =S][|L|+|R|=|S|]$,我们可以用再增加一维表示集合大小。

$\sigma _{i,S}=[i=|S|]f_s$

我们求出$f$和$g$的集合占位幂级数$ \sigma$和$\tau$,求出$\theta$,其中

$\theta_{i,S} = \sum_{j+k=i,L \cup R =S} \sigma_{j,L}\times \tau_{k,R}$

因为当$i=|S|,\sigma_{j,L}\times \tau_{k,R} \neq 0$时也必定满足$j=|L|,k=|R|$,就相当于子集卷积变成了集合与卷积了。

最开始感觉复杂度是$n^32^n$,因为集合幂级数乘法是$n2^n$,形式幂级数乘法是$n^2$。

然而发现再把$\sigma$和$\tau$反演后直接做一次乘法是$2^n$的,做多次乘法时并不需要每次都反演一遍,不影响总复杂度,所以复杂度是$n^22^n$。

 

转载于:https://www.cnblogs.com/ezyzy/p/8612123.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值