
HMF-have much fun Site
文章
标签
16

阅

2023-09-03
2 min read
【Trick】一类集合计数问题
热度: loading...
一类集合计数问题,形如
给定一个数列 ,设一个集合 ,其权值为 ,求所有满足集合内所有元素进行⊕运算后值为 的集合的权值和。
其中 ⊕ 运算是任意位运算, 是某种能用多项式表达出来的函数。
这种问题我们可以用 FWT 来解决。以 为例,显然我们可以将原式表达成集合幂级数形式:
这里的乘是 ⊕ 运算。
显然直接 FWT 是不可行的。我们对每个因式考虑他的 FWT。由于因式只有两项,所以其对 FWT 每一位的贡献只有两种可能,我们设其为 和 。
这里运用到一个性质,FWT 的和等于和的 FWT,我们将所有因式加在一起进行 FWT。考虑 FWT 后第 位的值为 ,显然可以列出式子 ,解完式子之后我们就可以知道这一位有多少个 ,多少个 ,我们变可以依此推出 FWT 的乘积在这一位为 。
典例1:
给出 个长度为 的 01 数列(每个 01 数列表示一个集合),求选出一些使其并集为 的方案数。
或卷积,每个因式对每一位的贡献为 或 ,解方程即可。
异或卷积,每个因式对每一位的贡献为 或 ,解方程即可。
赏
