學習筆記 矩陣乘法及其優化dp

2022-02-05 23:32:27 字數 648 閱讀 3726

1.定義:

$c[i][j]=\sum a[i][k]\times b[k][j]$

所以矩陣乘法有條件,(n*m)*(m*p)=n*p

即第乙個矩陣的列數等於第二個矩陣的行數,否則沒有意義。

2.結合律與分配率

矩陣乘法不一定任何時候都有交換律。因為交換後甚至不能保證第乙個矩陣的列數等於第二個矩陣的行數。

但是,矩陣乘法有結合律。

a*b*c=a*(b*c)

這是乙個最常用的運算律,使之可以用矩陣快速冪。

3.構造技巧。

矩陣乘法主要用途還是矩陣加速dp。

例如什麼n=1e9之類的。

關鍵還是在於列出dp或者叫遞推式子。

by lyd:

1.一定是線性遞推式(斐波那契數列)

2.總有乙個轉移矩陣(通常還是正方形)一直不變(才能快速冪)

3.矩陣邊長不能太大,因為乘法複雜度是o(n^3)

4.矩陣保留能往下遞推的項即可。

4.基礎應用:

①斐波那契數列第1e9項。斐波那契數列

②[tjoi2015]棋盤

矩陣乘法除了這樣的優化dp/遞推之外,還可以就矩陣乘法本身出一些題目。

以及一些以矩陣乘法為基礎的構造

5.板板題——預處理+矩陣+定義新運算

矩陣乘法優化DP

定義三個矩陣a,b,c,其中行和列分別為 m times n,n times p,m times p 其中行是從上往下數的,列是從左往右數的 c sum a times b 矩陣乘法具有結合律,但沒有交換律,可以乘方 求逆。做矩陣優化dp的題目步驟 1 quad 把 dp 方程推出來 假如不能手推,...

程式碎片 矩陣乘法優化 dp,遞迴

usingsystem usingsystem collections generic namespacesdproject privatevoidinitial this.mlist newlist martix array int m newint 5,5 publicvoidgetbestso...

矩陣鏈乘法 DP

矩陣鏈乘法是這樣的問題 給定n個矩陣 a1,a2,an,其中ai與ai 1是可乘的,i 1,2 n 1。確定計算矩陣連乘積的計算次序,使得依此次序計算矩陣連乘積需要的數乘次數最少。輸入資料為矩陣個數和每個矩陣規模,輸出結果為計算矩陣連乘積的計算次序和最少數乘次數。我們稱有如下性質的矩陣乘積鏈為完全括...