转置原理
基本思想
对于一个 \(n\times m\) 矩阵 \(A\) 和 \(m\) 维向量 \(v\):
\[Av=\left(A^T\right)^Tv
\]
如果 \(A^Tu\)(\(u\) 为任意 \(n\) 维向量)可被写为:
\[\sum_{p}A_{p_1}A_{p_2}\cdots A_{p_{|p|}}u
\]
则
\[Av=\sum_{p}A_{p_{|p|}}^T\cdots A_{p_2}^TA_{p_1}^Tv
\]
例题
多项式多点求值
设 \(n=\deg f(x)\),求 \(x_0,\dots,x_n\) 的点值。
设 \(\textbf{v}\) 为 \(f(x)\) 系数向量,\(A_{i,j}=x_i^j\),即:
\[A=\left[\begin{matrix}
1 &x_0 &x_0^2 &\cdots &x_0^n \\
1 &x_1 &x_1^2 &\cdots &x_1^n \\
\vdots &\vdots &\vdots &\ddots &\vdots \\
1 &x_n &x_n^2 &\cdots &x_n^n
\end{matrix}\right]
\]
考虑求 \(A^Tu\),
\[A^T=\left[\begin{matrix}
1 &1 &\cdots &1 \\
x_0 &x_1 &\cdots &x_n \\
\vdots &\vdots &\ddots &\vdots \\
x_0^n &x_1^n &\cdots &x_n^n
\end{matrix}\right]
\]
注意到
\[(A^Tu)_i=[z^i]\sum_{j=0}^n\frac{f_j}{1-x_jz}
\]
发现可以分治求 \(A^Tu\):
- 在分治叶子 \(j\) 处,返回分式 \(\frac{f_j}{1-x_jz}\)。
- 每次分治合并,设左边返回 \(\frac{u(z)}{p(z)}\),右边返回 \(\frac{v(z)}{q(z)}\),则和为 \(\frac{q(z)u(z)+p(z)v(z)}{p(z)q(z)}\)。
- 设最终得到了 \(\frac{u(z)}{p(z)}\),求 \(p(z)^{-1}\) 并与 \(u(z)\) 卷起来。
写成线性代数形式为:
- 在分治叶子 \(j\) 处,返回 \(C_j\textbf{v}\)(其中 \(C_{j,x,y}=[x=0\land y=j]\))。
- 每次合并,设左边返回 \(\textbf{u}\),预处理得到的分母对应矩阵为 \(P\),右边返回 \(\textbf{v}\),预处理得到的分母对应矩阵为 \(Q\),则返回 \(Q\textbf{u}+P\textbf{v}\)。
- 设最终得到了 \(\textbf{u}\),预处理分母的逆对应矩阵为 \(P'\),则最终结果是 \(P'\textbf{u}\)
多项式 \(g\) 对应矩阵:
\[\left[\begin{matrix}
g_0 &0 &0 &\dots &0 \\
g_1 &g_0 &0 &\dots &0 \\
g_2 &g_1 &g_0 &\dots &0 \\
\vdots &\vdots &\vdots &\ddots &\vdots \\
g_n &g_{n-1} &g_{n-2} &\dots &g_0
\end{matrix}\right]
\]
注意到该矩阵转置乘向量为差卷积。
把这个过程转置过来自顶向下递归就可以了,注意到每次规模会减半,复杂度 \(\mathcal{O}(n\log^2n)\)。
撤销背包(from P15649 @min_inf)
为了便于理解,我们用多项式卷表示背包。
问题形如,有 \(f_1(x),\dots,f_n(x)\),对若干 \(i\),求 \(P_i(x)=\prod\limits_{j\ne i}f_j(x)\) 的各项系数加权和 \(\sum\limits_{j}k_jP_{i,j}\)。
显然可以直接撤销背包,不过我们忽略他。我们考虑转置,预处理 \(F_i(x)=\prod\limits_{j\le i}f_j(x),G_i(x)=\prod\limits_{j\ge i}f_j(x)\),则 \(P_i=F_{i-1}G_{i+1}\),把 \(F\) 用向量表示,把 \(G\) 用矩阵表示,则所求即
\[\textbf{k}^TG\textbf{F}
\]
转置原理
\[\textbf{k}^TG\textbf{F}=\left(\left(\textbf{k}^TG\right)^T\right)^T\textbf{F}=\left(G^T\textbf{k}\right)^T\textbf{F}
\]
\(G^T\textbf{k}\) 可以预处理,外面是点乘,都是好做的。

浙公网安备 33010602011771号