T 家族/FWT 学习笔记
或卷积
FWT_OR
for (int k = 1; k < N; k <<= 1)
for (int i = 0; i < N; i += k << 1)
for (int j = 0; j < k; ++j)
add(f[i | j | k], f[i | j]);
IFWT_OR
for (int k = 1; k < N; k <<= 1)
for (int i = 0; i < N; i += k << 1)
for (int j = 0; j < k; ++j)
sub(f[i | j | k], f[i | j]);