日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

特征多项式

發布時間:2024/8/26 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 特征多项式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

特征多項式與常系數線性齊次遞推

一般來說,這個東西是用來優化能用矩陣乘法優化的遞推式子的。

通常,這種遞推式子的特征是在齊次的條件下,轉移系數也可以通過遞推得到。

對于這樣的遞推,通常解法為$O(NK)$的遞推或者$O(k^3\log n)$的矩陣乘法,但是有些**毒瘤**的出題人~~吉老師~~,會將這樣的遞推強行出成$K\le 1000$,特別,對于常系數線性齊次遞推有些出題人甚至會出成$20000$!

這樣,就需要引入一個非常有趣~~頭禿~~的概念:特征多項式。

首先,我們需要介紹$Cayley-Hamilton$定理

對于一個$n$階的一個方陣,它的特征多項式為$p(\lambda)=|\lambda E-A|=\lambda^n+b_1\lambda^{n-1}+b_2\lambda^{n-2}+...+b_n$

那么顯然:$p(A)=0$

也就是說:$A^N+b_1A^{n-1}+...+b_n=0$,即$p(\lambda)$為原多項式的化零多項式。

因此,這個特征多項式可以通過高斯消元及拉格朗日插值求出。

求矩陣的特征多項式

一個$O(n^4)$的做法

顯然,我們得到的特征多項式是一個$n$階多項式,那么只需要知道$n+1$個點的點值就可以得到了。

也就是,我們把$n+1$個數代入$|\lambda E-A|$中(作為$\lambda$),然后暴力高斯消元即可得到一個矩陣的特征多項式。

那么,接下來,只需要拉格朗日插值即可。

這個做法作為一個$n^4$的做法其實想要卡掉矩陣乘法是很難的,除非將遞推的項數放到$10^{1000}$這樣的級別,如[BZOJ4162]

那么接下來,我們考慮剛剛的做法能否被優化。

顯然,每次$n^3$求矩陣行列式太慢了。

一個$O(n^3)$的做法

對于這樣的矩陣:$A=P\times B\times P^{-1}$

稱$A,B$是相似的,也就是說,對于$A,B$的特征多項式相同。

構造還是很容易的,只需要保留每行與每行之間的關系即可。

對于這樣的矩陣,我們稱之為上海森堡矩陣。

$\begin{pmatrix} a_{1,1}&a_{1,2}&a_{1,3}&\cdots&a_{1,n}\\ a_{2,1}&a_{2,2}&a_{2,3}&\cdots&a_{2,n}\\ 0&a_{3,2}&a_{3,3}&\cdots&a_{3,n}\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ 0&0&0&\cdots&a_{n,n} \end{pmatrix}$

那么,對于這樣的矩陣,求行列式的時間復雜度就降為$n^2$了!

然后,總時間復雜度為$n^3+n^2\log m$,或者為$n^3+n\log n \log m$(并無卵用),然后對于$n^3 \log m$的矩陣乘法構成了鮮明的優勢(大霧

顯然,其實上面的東西沒有那么有用...

但是還是有必要知道的,萬一他卡你呢?

常系數線性齊次遞推的矩陣的特征多項式

定義:遞推式為$f_i=\sum\limits_{j=1}^na_j\times f_{i-j},i>n$的遞推。

講道理,這個東西才非常有用...

對于所有的常系數線性齊次遞推來說,它們的矩陣形態類似,同樣,他們的特征多項式也類似...

其實手畫一下就可以發現,它們的特征多項式都是$p(\lambda)=\lambda^n-a_1\lambda^{n-1}-a_2\lambda^{n-2}-...-a_n$

按照行列式的定義展開式子退一下就得到啦!

特征多項式的使用手冊

其實,使用方法很簡單啦,就是運用之前得到的特征多項式性質,$p(A)=A^N+b_1A^{n-1}+...+b_n=0$

那么,對于這樣的式子,就可以做到將所有的$A^K$用$A^0\sim A^n$的矩陣線性表達出來了。

$A^{x+y}=A^x \times A^y$

那么$A^x=\sum\limits_{i=0}^n b_i\times A^i,A^y=\sum\limits_{i=0}^nc_i\times A^i$

也就是:$A^{x+y}=\sum\limits_{i=0}^n\sum\limits_{j=0}^nb_i\times c_{j}\times A^{i+j}$

因為有:$p(A)=0$也就是說:$A^{x+y}=\sum\limits_{k=0}^{2\times n}(\sum\limits_{i=0}^{\min(n,k)}b_ic_{k-i})A^k \mod p(\lambda)$

然后顯然,可以用倍增(其實就是快速冪)上述操作,也就是我們得到了一個$n^2\log m$復雜度的遞推。

對于上述暴力操作可以用$NTT$或$FFT$優化上述多項式相乘和多項式取模。

也就是說,我們得到了一個$n\log n \log m$的優秀做法!(拿頭寫啊

關于答案

$A^x=\sum\limits_{i=0}^n b_i\times A^i$

這個式子已經給我們答案了,也就是說,這個矩陣的前$n$項加上系數相加即可,但是顯然這個東西是$n^4$的

如果要求$f_m$的話,這個東西只需要用到$f_0\sim f_n$即可

如果求矩陣的話,還是老老實實的一個一個乘吧...

例題.jpg

求矩陣特征多項式裸題:[BZOJ4162]

常系數線性齊次遞推$n^2\log m$裸題:[BZOJ4161]

高難度的東西:[NOI 2017 泳池]

附件

NOI 2017 泳池 題解

對我來說,可能我只能接受$k\le 2000$,如果再大就想要打人了...

首先70分的暴力基本雷同[UNR 2 積勞成疾](http://uoj.ac/problem/311)

大概就是推一個$f[i][j],s[i][j]$即可,[我不想再寫一遍了](https://winniechen.cn/?p=152)

剩下的就是可以把這個轉移寫成矩陣的形式,然后就可以拿到優秀的$90$分了。

最后,根據上面的東西,優化一下就可以AC掉這道題了!

轉載于:https://www.cnblogs.com/Winniechen/p/10246295.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的特征多项式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。