二项式定理 + 单位根反演.
在 $n$ 个元素组成的 $2^n$ 个集合中选出若干集合,使得它们交集大小为 $4$ 的倍数,求方案数.
$n\le 10^7$ .
考虑容斥,钦定交集中包含了 $k$ 个元素的总方案数为
$$
g(k)=\binom n k (2^{2^{n-k}}-1)
$$
考虑构造出容斥系数 $f$ ,使得
$$
ans =\sum_{i=0}^n f(k)g(k)
$$
对于交集大小为 $x$ 的某种方案,对答案的贡献应当为 $[4|x]$ ,而按照 $ans=\sum f(k)g(k)$ 计算时,贡献为
$$
\sum_{i=0}^x \binom x if(i)
$$
于是可以得出 $[4|x]=\sum_{i=0}^x \binom x i f(i)$ .
利用二项式反演和单位根反演可以得到
$$
f(x)=\sum_{i=0}^x (-1)^{x-i} \binom x i [4|i] \\
=\sum_{i=0}^x(-1)^{x-i}\binom x i \frac{1}{4}\sum_{j=0}^3 (\omega_{4}^i)^j \\
=\frac{1}{4} \sum_{j=0}^3 \sum_{i=0}^x\binom x i(-1)^{x-i}\ (\omega_{4}^j)^i \\
=\frac{1}{4} \sum_{j=0}^3(\omega_4^j-1)^x
$$
注意选择一个技能都没有的集合和一个集合都不选择是不同的方案.
而上述分析只考虑了前者的贡献,最后答案还要加上 $1$ ,表示一个集合都不选.
时间复杂度 $O(n)$ .
1 | //%std |