行列式学习笔记

行列式

基础

概念

\(n\) 阶行列式

\[\begin{vmatrix} a_{11} & a_{12} & ... & a_{1n} \\ a_{21} & a_{22} & ... & a_{2n} \\ ... & ... & & ... \\ a_{n1} & a_{n2} & ... & a_{nn} \\ \end{vmatrix} \]

完全展开式 $ \sum_{j_1j_2...j_n}(-1)^{\tau(j_1j_2...j_n)}a_{1j_1}a_{2j_2}...a_{nj_n} $

\(\tau\) 指逆序对数

性质

  1. 经过转置后,行列式的值不变,即 \(|A^T|=|A|\)
  2. 两行或两列互换位置,行列式 \(\times -1\)
  3. 把某行(列)的 \(k\) 倍加到另一行(列),行列式的值不变
  4. 某行(列)有公因子 \(k\) 可提到行列式外
  5. 行列式的某行(列)是两个元素之和,可把行列式拆成两个行列式之和

通过性质23,我们可以完成高斯消元,把矩阵变成上三角矩阵,容易发现,上三角矩阵的行列式就是对角线上的数的乘积(通用计算方法

性质45的证明:

\(Laplace\)展开

  • 余子式(minor):\(M_{ij}\) ,表示去掉第 \(i\) 行和第 \(j\) 列的 \(n-1\) 阶行列式
  • 代数余子式(cofactor): \(A_{ij}=(-1)^{i+j}M_{ij}\)

\(|A|=\sum_{k=1}^na_{ik}A_{ik},i=1,2,...,n\)

特殊的:

\[\begin{vmatrix} A & * \\ O & B \\ \end{vmatrix} = \begin{vmatrix} A & O \\ * & B \\ \end{vmatrix} = |A|\cdot|B|,~ \begin{vmatrix} O & A \\ B & * \\ \end{vmatrix} =\begin{vmatrix} * & A \\ B & O \\ \end{vmatrix} =(-1)^{mn}|A|\cdot|B| \]

范德蒙德行列式

\[\begin{vmatrix} 1 & 1 & ... & 1 \\ x_1 & x_2 & ... & x_n \\ x_1^2 & x_2^2 & ... & x_n^2 \\ ... & ... & ... & ...\\ x_1^{n-1} & x_2^{n-1} & ... & x_n^{n-1} \\ \end{vmatrix} = \prod_{1 \leq j<i \leq n}(x_i - x_j) \]

例题

【2021集训队互测一】愚蠢的在线法官

题目大意

给定树的形态,数组 \(A,v\),求

\[\left | \begin{array}{cccc} v_{\text{LCA}(A_1,A_1)} & v_{\text{LCA}(A_1,A_2)} & \cdots & v_{\text{LCA}(A_1,A_n)}\\ v_{\text{LCA}(A_2,A_1)} & v_{\text{LCA}(A_2,A_2)} & \cdots & v_{\text{LCA}(A_2,A_n)}\\ \vdots & \vdots & \ddots & \vdots\\ v_{\text{LCA}(A_n,A_1)} & v_{\text{LCA}(A_n,A_2)} & \cdots & v_{\text{LCA}(A_n,A_n)}\\ \end{array} \right | \]

solution

首先 \(A\) 中若有重复,其行列式一定为0

然后交换两个 \(A\) ,相当于交换一行和一列,行列式不变

所以考虑在树上进行行列式的合并

我们需要处理的是

\[\left | \begin{array}{} A&V\\ V&B \end{array} \right | \]

A,B是两个需要合并的行列式, \(V\) 表示全是 \(v_k\) 的矩阵(需要合并的两棵子树的LCA是固定的)

如何求呢?

\(|A|_s\) 表示把 \(A\) 任意一行改成1的行列式的和,\(A_t\) 表示把 \(A\) 矩阵中的每个元素 \(-t\)

考虑用上面的性质45证明一个东西:

\[|A|=|A_t|+t|A|_s \]

posted @ 2024-06-20 16:20  zhy_learn  阅读(10)  评论(0编辑  收藏  举报