以下涉及两种元的乘法,xi×xj=xi⊕j,yi×yj=yi+j。
求 [x0]∏(1+2xai)。
对每个 S 求出 [xS]FWT(∏(1+2xai)) 再 IFWT 回去。
这个等于 ∏i[xS]FWT(1+2xai),即 ∏i(1+2(−1)∣S&ai∣)。
在这里不是 −1 就是 3,即 (−1)n−tS3tS,这个 tS 可以通过对 ai 的出现次数 FWT 得到。
求 [xSy0]∏(1+xaiy),这里 yi×yj=y(i+j)modm。
[xS]=[y0]∏(1+y(−1)∣S&ai∣),预处理 (∏(1±y))k,复杂度 O(nm+VlogV)。
求 [xSyB]∏(1+xai(y2+2y+1))。
FWT 之后对每个 0≤t≤n 求 [yB](1−(y2+2y+1))n−t(1+(y2+2+1))t。
展开式子然后 ntt 即可。
先数不可重集 hi,(i≤∣S∣) 的方案数,即 ∑a∈T[xayi]∏b∈S(1+xby)。
先 FWT,点乘,fs=[xs]∏b∈S(1+y(−1)∣s&b∣)。
在展开一层,把所有 fs IFWT 回去,hi=∑a∈Tga=∑a∈T2v1∑sfs(−1)∣S&a∣。
hi=[yi]2v1∑s∑a∈T(−1)∣s&a∣(1+y)tss(1−y)∣S∣−tss=2v1[yi](∣T∣−tts)(1+y)tss(1−y)∣S∣−tss
O(∣S∣) 二项式定理即可。
至于对 228 的东西求 tss=∑a∈S[∣a&s∣mod2=0],bitset,每次加一翻转一个后缀,预处理此时对每个 a∈S 的影响。
怎么上面写的都是求 ∣a&S∣mod2 状物。
原来标题写的是有一维是异或,那其他 FWT 咋办。
一个 or 卷积的好题。