$Description$
求不大于$m$的、 质因数集与给定质数集有交集的自然数之和。
$Solution$
考虑容斥。统计所有$a_i$的倍数,然后减去两两之间的乘积,再加上三个之间的乘积$\cdots,$这个过程可以用状压实现。
对于当前状态$s,$根据$s$中$1$的个数确定状态$s$对答案的贡献是加还是减。然后计算一个$res$表示$s$中所有$1$位置上$a_i$的乘积。将答案$+/-$上$\sum\limits_{i=1}^{m/res}i\times res,z$这个式子可以化简为$$\frac{(m/res)\times(m\times res+1)}{2}\times res$$
$Code$
1 |
|