4162: shlw loves matrix II
如果我们已知矩阵
A
A
A的特征多项式
p
(
x
)
p(x)
p(x),其最高次数为
k
k
k,由哈密尔顿-凯莱定理得知
p
(
A
)
=
a
0
A
n
+
a
1
A
n
−
1
+
⋯
+
a
k
A
n
−
k
=
0
p(A)=a_0A^n+a_1A^{n-1}+\dots+a_kA^{n-k}=0
p(A)=a0An+a1An−1+⋯+akAn−k=0
显然
a
0
=
1
a_0=1
a0=1,那么
A
n
=
a
1
A
n
−
1
+
⋯
+
a
k
A
n
−
k
A^n=a_1A^{n-1}+\dots+a_kA^{n-k}
An=a1An−1+⋯+akAn−k
我们就可以把一个高次项拆成若干次数较小的项,再拆拆拆拆成
k
−
1
k-1
k−1项,显然
k
k
k是
O
(
n
)
O(n)
O(n)级别的,然后我们求出
A
0
A^0
A0到
A
k
−
1
A^{k-1}
Ak−1就可方便地计算出答案.
考虑怎么计算特征多项式.
满足
A
=
P
B
P
−
1
A=PBP^{-1}
A=PBP−1的两个矩阵
A
,
B
A,B
A,B互为相似矩阵,它们的特征多项式相同,因此我们先把矩阵变换到如下形式(左下方是全为
0
0
0的三角),变换的时候记得左右乘两个互逆的初等矩阵:
[
a
1
,
1
a
1
,
2
⋯
a
1
,
n
a
2
,
1
a
2
,
2
⋯
a
2
,
n
0
a
3
,
2
⋯
a
3
,
n
0
0
⋯
a
2
,
n
⋮
⋮
⋱
⋮
0
0
⋯
a
n
,
n
]
\begin{bmatrix}a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\ a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\ 0 & a_{3,2} & \cdots & a_{3,n} \\ 0 & 0 & \cdots & a_{2,n} \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & a_{n,n} \end{bmatrix}
⎣⎢⎢⎢⎢⎢⎢⎢⎡a1,1a2,100⋮0a1,2a2,2a3,20⋮0⋯⋯⋯⋯⋱⋯a1,na2,na3,na2,n⋮an,n⎦⎥⎥⎥⎥⎥⎥⎥⎤
然后设
B
i
B_i
Bi为以
A
i
,
i
A_{i,i}
Ai,i为左上端点,
A
n
,
n
A_{n,n}
An,n为右下端点的矩阵,设
f
i
f_i
fi为
B
i
B_i
Bi的行列式,考虑对
B
B
B横着的第一行展开,我们可以得到:
f
i
=
A
i
,
i
f
i
+
1
+
(
A
i
+
1
,
i
)
A
i
,
i
+
1
f
i
+
2
+
(
A
i
+
1.
i
A
i
+
2
,
i
+
1
)
A
i
,
i
+
2
f
i
+
3
+
…
f_i=A_{i,i}f_{i+1}+(A_{i+1,i})A_{i,i+1}f_{i+2}+(A_{i+1.i}A_{i+2,i+1})A_{i,i+2}f_{i+3}+\dots
fi=Ai,ifi+1+(Ai+1,i)Ai,i+1fi+2+(Ai+1.iAi+2,i+1)Ai,i+2fi+3+…
然后就可以愉快地递推了.
设指数为
T
T
T,总时间复杂度为
O
(
n
4
+
n
2
l
o
g
T
)
O(n^4+n^2logT)
O(n4+n2logT)
BZOJ4162: shlw loves matrix II
最新推荐文章于 2021-07-19 16:35:27 发布