部分分极其不友好
n ≤ 1 e 6 k n \leq \frac {1e6}k n≤k1e6
首先 2 m n m 2^mnm 2mnm是不可能过的。
考虑 k k k比 m m m的数量级小这一特点。
如果我们硬写 F W T FWT FWT就浪费了这个性质。
考虑 F W T FWT FWT的定义式 [ j ] F W T ( a ) = ∑ i = 0 ( − 1 ) b i t c o u n t ( i & j ) a i [j]FWT(a) = \sum_{i=0} (-1)^{bitcount(i\&j)}a_i [j]FWT(a)=∑i=0(−1)bitcount(i&j)ai
那么我们一共有 2 k 2^k 2k种不同的 ∑ i = 0 ( − 1 ) b i t c o u n t ( i & j ) a i \sum_{i=0} (-1)^{bitcount(i\&j)}a_i ∑i=0(−1)bitcount(i&j)ai。
如果 a i a_i ai前面取 − 1 -1 −1那么第 i i i位为 1 1 1,这样我们可以得到一个 k k k位二进制数 p p p。
那么我们只考虑 [ j ] F W T ( a ) [j]FWT(a) [j]FWT(a),设 x p x_p