正题
首先你要发现一个结论,就是的奇偶性:当那么,否则
这个结论可以用定理简单证明。
当然你也可以数学归纳法。
所以我们知道了m必须是n的子集,才会有贡献。
那么我们枚举子集,然后转移就是
发现这个东西无法用FWT优化,因为他多了一个判断:
否则就是一个或卷积。
这个判断貌似没办法处理,把它转化为1的个数。也就是说判断变成:
分别对于r,b,每一个bit开一个数组,对于每一个数组做一遍FWT或正变换。
然后将 和 数组乘起来贡献到数组,然后若我要查询,我们直接查询即可。
相当于FWT保证了或卷积,卷积保证了位数。