1. 程式人生 > >Matrix-Tree定理(sx之前填坑還來得及嗎)

Matrix-Tree定理(sx之前填坑還來得及嗎)

從入門到入土:矩陣樹Matrix-Tree定理
參考blog

在正式介紹Matrix_Tree定理之前,我們需要一些前置知識

一些定義與定理

  • 對於一個無向圖G,ta的生成樹個數等於其基爾霍夫Kirchhhoff矩陣任何一個N1階主子式的行列式的絕對值

  • 所謂N1階主子式就是對於任意的一個r,將矩陣的第r行和第r列同時刪去得到的新矩陣

  • 基爾霍夫Kirchhoff矩陣的一種求法:
    基爾霍夫KirchhoffK=度數矩陣D鄰接矩陣A

基爾霍夫Kirchhoff矩陣的具體求法

  • 度數矩陣D:是一個N

    N的矩陣,其中
    D[i][j]=0(ij),D[i][i]=i

  • 鄰接矩陣A:是一個NN的矩陣,其中
    A[i][i]=0,A[i][j]=A[j][i]=i,j

  • 基爾霍夫KirchhoffK=度數矩陣D鄰接矩陣A

舉個例子:
這裡寫圖片描述

行列式det(K)求法

得到基爾霍夫矩陣後,隨便去掉某一行某一列並計算出新矩陣的行列式,其絕對值即為生成樹個數

這裡寫圖片描述

det(K)=p((1)τ(P)×K1,p1×K2,p2×K3,p3×...×KN,pN)

其中P1N的任意一個排列,τ(P)表示排列P逆序對數
而那個求和的每一項可以看做是在矩陣中選出N個數,這N個數不同行不同列

不大明白?
看一個形象的表示方法:
這裡寫圖片描述
在這個N=3的矩陣中,每一條線就代表著K1,p1×K2,p2×...×KN,pN

那麼τ(P)又是什麼呢?
主要看兩數連線的方向了,方向為 \ 的,表示連線的兩個數之間無逆序關係,方向為 / 的,表示連線的兩個數之間有逆序關係
具體怎麼計算呢?
對於選中的一個序列,把每一行選中的數依次與ta的上一行,上上一行直至第一行選中的數連線
若連線方向為 \ ,則無逆序關係,方向為 /,則累加一個逆序數
第一行因為沒有上一行,所以逆序數為0

舉個例子:
這裡寫圖片描述
淡藍色(青色,水藍色,管你叫什麼顏色)的線就是我們選中的排列
a1,4沒有上一行,逆序數=0
a2,1

【BZOJ3659】Which Dreamed It【有向圖歐拉回路計數】【matrix tree定理】【BEST定理】【高斯消元】

定理題... /* Think Thank Thunk */ #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typede

生成生成樹計數 --- Matrix-Tree定理(基爾霍夫矩陣樹定理)

模板題點這 題目大意: *一個有n座城市的組成國家,城市1至n編號,其中一些城市之間可以修建高速公路; *需要有選擇的修建一些高速公路,從而組成一個交通網路; *計算有多少種方案

Matrix-Tree定理及其拓展

正題       不能再半途而廢了。       讓我們現在開始講一下Matirx-Tree定理。       其實這個定理是用來解決關於“用圖建樹的方案樹”之類的問題的。       首先我們要了解幾個定理及其證明。       1.我們定義一個n*n的矩陣A,它

Vue2.0 從環境搭建到釋出新手完全攻略

【重點】後來發現這些坑是由於 npm 不是最新的版本3.10.2, 用 npm 3.9.5就會出現以下坑 解決辦法: 請執行以下命令 npm update -g 報錯 Error: Cannot find module 'opn' Error: Cannot find module 'webpack

Matrix-Tree定理學習筆記

適用問題:給定一個n個點m條邊的無向圖,求出這個圖的生成樹的總數。 拉普拉斯矩陣求法:度數矩陣 - 鄰接矩陣  = 拉普拉斯矩陣。 度數矩陣:(i=0,1.....n-1)(i,i) = 點i的

Matrix-Tree定理(1)----矩陣的行列式

菜雞博主開始看matrix tree定理辣!開啟editorial,發現是生成樹計數相關,要用matrix tree定理,然後就一臉懵逼(智力-=2),決定學習matrix tree定理這個神奇的東西。以下內容純屬博主口胡,不足之處希望dalao予以指出與更正。前置技能:

生成樹計數-Matrix-Tree定理

/* *演算法引入: *給定一個無向圖G,求它生成樹的個數t(G); * *演算法思想: *(1)G的度數矩陣D[G]是一個n*n的矩陣,並且滿足:當i≠j時,dij=0;當i=j時,dij等於vi的度數; *(2)G的鄰接矩陣A[G]是一個n*n的矩陣,並且滿

UVA10766(Organising the Organisation)生成樹計數-Matrix-Tree定理

/* *題目地址: *http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1707; * *題目大意:

$Matrix-Tree$定理-理論

mil 也有 wid 兩個 time 16px 跳過 主題 ora $Matrix-Tree$ 矩陣的行列式   這個東西看了好久才明白 _ (:з」∠)_ 時間不夠可以直接跳到第六段。   看到這種新定義,第一反應還是去翻百度百科:      但是這個講解真的讓人很迷惑.

2019.9.15 初級資料結構詳解專題待——全篇序

雖然剛剛初三,卻有點要退役的感覺。 記得還在剛剛開始接觸演算法和資料結構時,全班30多人窩在當時只有一個空調的小機房裡,每人抱著一本《資訊學奧賽一本通》(就是常說的橙書),過了2個小時,全班沒有一個人能看懂簡簡單單一個廣搜。 於是我當時就立志,要寫能讓所有人都看懂的資料結構和演算法詳解。如果做不到,那就問

數學-Matrix Tree定理證明

老久沒更了,冬令營也延期了(延期後豈不是志願者得上學了?) 最近把之前欠了好久的債,諸如FFT和Matrix-Tree等的搞清楚了(啊我承認之前只會用,沒有理解證明……),FFT老多人寫,而MatrixTree沒人證我就寫一下吧…… Matrix Tree結論 ----- Matrix Tree的結論網