fwt的再理解 与 k进制fwt

一. fwt 的本质

sh 的讲解很详细了,就不再写了

还是写一下吧...

构造二元函数 \(f(i,j)\) 满足:

  1. \(f(i,j)f(i,k)=f(i,j \oplus k)\)

  2. \(f(i,j)=\prod_{p} f(i_p,j_p)\) , \(i_p\) 表示 \(i\) 的二进制第 \(p\) 位的数 , \(j_p\) 同理

不难发现一组满足 (1) 的 \(f(0,0),f(0,1),f(1,0),f(1,1)\) 可确定所有的 \(f\)

并且, fwt 的本质即为:

\[\begin{bmatrix} FWT(A'_0) & FWT(A'_1) \end{bmatrix} = \begin{bmatrix} FWT(A_0) & FWT(A_1) \end{bmatrix} \begin{bmatrix} f(0,0) ~~~ f(0,1) \\ f(1,0) ~~~ f(1,1) \\ \end{bmatrix} \]

ifwt 即为乘上逆矩阵

那么对于任意二元运算,我们只需构造相应的 \(f\) 矩阵和其逆矩阵即可。

而且可以发现,每一位的二元运算是可以不同的。

例题

1.P5406 [THUPC2019]找树

二. k进制fwt

同理我们构造一个 \(k*k\)\(f\) 矩阵满足 \(k\) 进制运算下上述性质

\(\otimes\) (异或) 卷积为例:

异或卷积本质上是一个 \(\%k\) 的循环卷积,发现 \(k\) 次单位根便是一组合法的解,矩阵如下:

\[\begin{bmatrix} &\omega_{k}^{0\times 0} & \omega_{k}^{0 \times 1} & \cdots & \omega_{k}^{0 \times (k-1)} \\ &\omega_{k}^{1\times 0} & \omega_{k}^{1 \times 1} & \cdots & \omega_{k}^{1 \times (k-1)} \\ &\vdots & \vdots & \ddots & \vdots \\ &\omega_{k}^{(k-1)\times 0} & \omega_{k}^{(k-1) \times 1} & \cdots & \omega_{k}^{(k-1) \times (k-1)} \\ \end{bmatrix}\]

例题

1.P6673 [清华集训2016] 石家庄的工人阶级队伍比较坚强

posted @ 2022-05-04 12:02  chihik  阅读(116)  评论(0编辑  收藏  举报