QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: mygo

Posted at: 2026-01-20 20:21:18

Last updated: 2026-01-20 20:43:03

Back to Problem

常数更小的另解

设 $A_{i,j}$ 表示第 $i$ 个起点到第 $j$ 个终点的方案数。设 $p$ 为矩阵 $A$ 的秩,则我们要求 $A$ 的所有 $p\times p$ 的子矩阵的行列式之和,令其为 $f(A,p)$。

和官方题解所述类似,可以使用 Pfaffian 的性质求出 $f(A,n)$:若 $n$ 为奇数,则补一行一列将其变为偶数;若 $n$ 为偶数,对于 $1\leq i < j\leq n$,令:

$$Q_{i,j}=-Q_{j,i}=\sum_{1\leq k < l\leq m}\det \begin{bmatrix} A_{i,k} & A_{i,l}\\ A_{j,k} & A_{j,l}\\ \end{bmatrix}$$

则 $f(A,n)=\operatorname{Pf}(Q)$,可以使用高斯消元求解,也就是子任务 6 的做法。

对于本题的一般情况,可以通过高斯消元将 $A$ 写成 $B\times C$,其中矩阵 $B$ 的大小为 $n\times p$,$C$ 的大小为 $p\times m$。那么 $f(A,p)=f(B,p)\times f(C,p)$,可以使用上述子任务 6 的做法解决。

Comments

No comments yet.