假设矩阵为上三角矩阵,那么我们的枚举顺序可以优化:
这是原来的: F O R ( i , 1 , n ) F O R ( j , 1 , n ) F O R ( k , 1 , n ) FOR(i,1,n)FOR(j,1,n)FOR(k,1,n) FOR(i,1,n)FOR(j,1,n)FOR(k,1,n)
现在: F O R ( i , 1 , n ) F O R ( j , i , n ) F O R ( k , i , j ) FOR(i,1,n)FOR(j,i,n)FOR(k,i,j) FOR(i,1,n)FOR(j,i,n)FOR(k,i,j)
1 6 \frac{1}{6} 61的常数优化,很给力。
多次题目的时候,矩阵快速幂的时间复杂度为 O ( T n 3 l o g n ) O(Tn^3logn) O(Tn3logn)
当矩阵固定时:
如果答案为一个行向量,则预处理 2 i 2^i 2i次幂。由于矩阵的结合律,我们可以维护该行向量,这样只需要 O ( n 2 l o g n ) O(n^2logn) O(n2logn)做一次回答。
如果是矩阵前缀和的形式: ∑ i = 1 n B i \sum_{i=1}^n B^i ∑i=1nBi ,可以把矩阵扩域达到此目的。
构造方法如下:
构造 T = { A I 0 I } T=\begin{Bmatrix} A&I\\ 0&I \end{Bmatrix} T={A0II}
此时 T T T做 n + 1 n+1 n+1次前缀和,右上角的元素即为前缀和。
拓展:
右上角的 I I I可以换成列向量。
的话累计贡献就变成了相应的值。
典型例题:【清华集训】恐怖的奴隶主。
对于一个列向量 [ p 1 , p 2... p n ] [p1,p2...pn] [p1,p2...pn]表示状态为 1.. n 1..n 1..n时的贡献,则顺次相乘的累计结果恰好就是一次矩乘的贡献。
∣ A ∣ = ∑ P ( − 1 ) d ( P ) ∏ i = 1 n A [ i ] [ p i ] |A|=\sum_{P}(-1)^{d(P)}\prod_{i=1}^n{A[i][pi]} ∣A∣=∑P(−1)d(P)∏i=1nA[i][pi]
d ( P ) d(P) d(P)为逆序对数。
一个神奇性质: ∣ A B ∣ = ∣ A ∣ ∣ B ∣ |AB|=|A||B| ∣AB∣=∣A∣∣B∣
A可逆
<=> ∣ A ∣ ≠ 0 |A|≠0 ∣A∣=0
<=> r ( A ) = n r(A) = n r(A)=n
<=> 齐次线性方程组 A X = 0 AX=0 AX=0 仅有零解
<=> 非齐次线性方程组$AX=b $有唯一解
<=> A的特征值不为0
主对角线元素和。
方程如果存在0系数行,常数项 > 0 >0 >0,则方程无解。
否则方程有无数解。
表示线性无关的横行的极大数目。
常数项全为 0 0 0的方程组。
若 r ( A ) < n r(A)
否则,方程为全 0 0 0解。
通俗来讲,为一个向量 u ⃗ \vec{u} u经过矩阵 A A A坐标转换后对应的向量与其本身相比方向不变,是其某个倍数。这种向量 u ⃗ \vec{u} u即为 A A A的特征向量,倍数为特征值(特征值可以为0)。
特征值可能有多解。
也就是 A u ⃗ = λ u ⃗ A\vec{u}=\lambda\vec{u} Au=λu.
即 ( A − λ I ) u ⃗ = 0 (A-\lambda I)\vec{u}=0 (A−λI)u=0
特征向量有非零解,即 ( A − λ I ) u ⃗ = 0 (A-\lambda I)\vec{u}=0 (A−λI)u=0有非零解,即 r < n r
上三角矩阵为对角线上的 n n n个元素。
特征值的性质:相加等于矩阵的迹,相乘等于行列式。
由于我们只需要让其满足“非0解”这一个条件,所以在特定条件下可以做到单次 O ( n 2 ) O(n^2) O(n2)的复杂度:
当矩阵为上三角矩阵,且主对角线上元素互不相等时,可以得到:
对于每一个 B = ( A − λ i I ) B=(A-\lambda _iI) B=(A−λiI),其 r ( B ) = n − 1 r(B)=n-1 r(B)=n−1,必然存在非0解。故我们从大到小枚举,第 i i i位的值可以由 ( ∑ j > i b [ i ] [ j ] ) / b [ i ] [ i ] (\sum_{j>i}b[i][j])/b[i][i] (∑j>ib[i][j])/b[i][i]得到。当 b [ i ] [ i ] b[i][i] b[i][i]等于0时,把其设为 1 1 1即可。(必然只有一个)
经典例题:20200201 snow
定义:如果存在可逆矩阵 P P P,满足 P − 1 A P = B P^{-1}AP=B P−1AP=B,则 A 、 B A、B A、B相似。
相似矩阵的性质:
1. A A A和 B B B具有相同的特征值,特征多项式。但是没有相同的特征向量。
2. A A A和 B B B有相等的秩、迹、行列式。
主要用于缩小矩阵规模,用对角矩阵代替原矩阵。
设 λ 1 , λ 2... λ n \lambda1,\lambda2...\lambda n λ1,λ2...λn为 B B B的n个特征值, ( x 1 , x 2... x n ) (x1,x2...xn) (x1,x2...xn)为其对应的特征向量,则:
A A A= d i a g ( λ 1 , λ 2... λ n ) diag(\lambda1,\lambda2...\lambda n) diag(λ1,λ2...λn)(对角矩阵)
P P P为 ( x 1 , x 2 , . . . x n ) (x1,x2,...xn) (x1,x2,...xn).
证明:
由定义来推, B P = P A BP=PA BP=PA
B = P − 1 A P B=P^{-1}AP B=P−1AP
这样大大简化了运算,因为对角矩阵的乘法等于对应位置相乘。