鄰接矩陣妙用

2022-09-23 10:51:07 字數 597 閱讀 5411

大部分**是oiwiki

說到底鄰接矩陣也是矩陣,也是用來描述乙個狀態轉移過程的,這個狀態可以是乙個點集(向量),也可以是所有點對(矩陣)。

首先是用起點向量乘鄰接矩陣轉移到終點向量。

快速求從一些起點走 \(k\) 步能到達的點

可以用起點向量乘上鄰接矩陣的 \(k\) 次方表達,可以用 bitset 優化。

然後是oiwiki中提到求兩點路徑問題,用 \(k\) 時答案矩陣乘上鄰接矩陣得到 \(k+1\) 時的答案矩陣。

通常 \(k=1\) 時的答案矩陣和鄰接矩陣類似,可能是邊數或邊權。

對於所有點對統計長為 \(k\) 的路徑數

答案矩陣是兩點邊數,轉移乘上鄰接矩陣的 \(k-1\) 次方。

邊有邊權,對於所有點對統計長為 \(k\) 的最短路

答案矩陣是兩點間邊權最小值,轉移時 \(ans_[i,j]=\min\limits_\\),發現和矩陣乘法類似,所以我們自定義乙個新的矩陣乘即可。

統計長小於等於 \(k\) 的路徑

同樣適用於統計長小於等於 \(k\) 的路徑數和最短路。

我們只需要在原本的演算法基礎上給每個點新增乙個邊權為 \(0\),長為 \(1\) 的自環即可。

鄰接矩陣學習

鄰接矩陣 是表示頂點之間相鄰關係的矩陣。因此,用乙個一維陣列存放圖中所有頂點資料 用乙個二維陣列存放頂點間的關係 邊或弧 的資料,這個二維陣列稱為鄰接矩陣。鄰接矩陣又分為有向圖鄰接矩陣和無向圖鄰接矩陣。設g v,e 是乙個圖,其中v g的鄰接矩陣是乙個具有下列性質的n階方陣 對無向圖而言,鄰接矩陣一...

鄰接矩陣學習

鄰接矩陣 是表示頂點之間相鄰關係的矩陣。因此,用乙個一維陣列存放圖中所有頂點資料 用乙個二維陣列存放頂點間的關係 邊或弧 的資料,這個二維陣列稱為鄰接矩陣。鄰接矩陣又分為有向圖鄰接矩陣和無向圖鄰接矩陣。設g v,e 是乙個圖,其中v g的鄰接矩陣是乙個具有下列性質的n階方陣 對無向圖而言,鄰接矩陣一...

鄰接矩陣(Adjacency Matrix)

鄰接矩陣的特點 1 對於有n個頂點的無向圖最多需要n n 1 2個儲存空間,有向圖最多需要n 2個儲存空間 2 對於無向圖,鄰接矩陣第i行元素之和是圖第i個頂點的度 3 鄰接矩陣適用於稠密圖 4 方便搜尋兩頂點是否有邊或弧 鄰接矩陣的屬性 public static final int inf 32...