题解:P12046 [USTCPC 2025] 生成树!

· · 题解

这里找规律等等可以通过此题的方法不在介绍,仅介绍 std 做法。

前置芝士

Matrix-Tree 定理。

列出 n+1 个点 k 阶轮的 Laplace 矩阵,再删掉中心点所在行列,最终答案即为该矩阵的行列式。

常规做法

答案只需计算如下矩阵的行列式,其中主对角线上的值 a_{i,i}ik 的倍数时为 3,否则为 2

\begin{vmatrix} 2 & -1 & \cdots & -1 \\ -1 & 2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ -1 & 0 & \cdots & 3 \end{vmatrix}

该行列式可以拆成四部分:

\begin{vmatrix} 0 & -1 & \cdots & 0 \\ 0 & 2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ -1 & 0 & \cdots & 0 \end{vmatrix} + \begin{vmatrix} 0 & 0 & \cdots & -1 \\ -1 & 2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 0 \end{vmatrix} \\ + \begin{vmatrix} 2 & -1 & \cdots & 0 \\ -1 & 2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 3 \end{vmatrix} + \begin{vmatrix} 0 & 0 & \cdots & -1 \\ 0 & 2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ -1 & 0 & \cdots & 0 \end{vmatrix}

其中前两项的答案均为 -1,后两项行列式满足如下形式:

\begin{vmatrix} a_{1,1} & -1 & \cdots & 0 \\ -1 & a_{2,2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & a_{n,n} \end{vmatrix}

\Delta_n 表示 n \times n 的矩阵的行列式,有性质 \Delta_n=a_{n,n}\Delta_{n-1} - \Delta_{n-2},可以用矩阵快速幂优化,复杂度 O(\log n)