摘自大牛的見解

2022-04-17 22:21:29 字數 1817 閱讀 9860

生成樹

生成樹(spanning-tree)是圖論裡面乙個重要的概念。

乙個無向圖的所有邊構成的集合稱為這個無向圖的邊集,乙個構成樹的邊集的子集,就成為這個無向圖的生成樹。 如果只是要求一棵生成樹或者是要求邊總權值最小的生成樹,有很多經典的演算法,比如prim與kruscal演算法。 然而如果要求乙個無向圖的生成樹數量,就不是乙個那麼簡單的任務了。

matrix-tree定理

以下引用自國家集訓隊2008**集

matrix-tree定理是解決生成樹計數問題最有力的**之一。它首先於2023年被kirchhoff證明。在介紹定理之前,我們首先明確幾個概念:

1、 g的度數矩陣d[g]是乙個nn的矩陣,並且滿足:當i≠j時,dij=0;當i=j時,dij等於vi的度數。 2、 g的鄰接矩陣a[g]也是乙個nn的矩陣, 並且滿足:如果vi、vj之間有邊直接相連,則aij=1,否則為0。

我們定義g的kirchhoff矩陣(也稱為拉普拉斯運算元)c[g]為c[g]=d[g]-a[g],則matrix-tree定理可以描述為:g的所有不同的生成樹的個數等於其kirchhoff矩陣c[g]任何乙個n-1階主子式的行列式的絕對值。所謂n-1階主子式,就是對於r(1≤r≤n),將c[g]的第r行、第r列同時去掉後得到的新矩陣,用cr[g]表示。

the matrix revolutions(icpc regionals 2014 :: asia - shanghai problem a)

給定乙個無向圖,每條邊上有黑色或者白色,求黑色邊數不超過k的生成樹數量對10^9+7取模。 點數不超過50。

matrix-tree定理可以求出乙個無向圖的生成樹數量,但這個問題似乎不能直接用matrix-tree定理解決,我們換個思路,如果把度數矩陣與鄰接矩陣中的1換成代表顏色的字母代數x

和y。這樣得到的行列式就有x

和y這兩個未知元,此時行列式得到的值就是乙個關於x與y的多項式。而且可以發現xayb

的係數就是含有a

條x邊以及b

條y邊的生成樹數量。

由於乙個生成樹邊的數量等於點的數量-1,意味著得到的多項式滿足a+b+1=

點數。也就是說可以讓y=1

,這樣就可以少乙個變元,簡化接下來的運算。

暴力解乙個行列式需要列舉所有全排列的情況,時間複雜度極高。然而可以使用高斯消元來對行列式進行初等變換成乙個上三角矩陣,這樣只需要o(n3)

的時間複雜度來求乙個行列式對乙個質數的取模,n

為行列式的階數。

然而這回這個問題裡面有x

這個變元,意味著我們無法進行高斯消元。但是知道得到的值是關於x

的n階多項式,可以考慮插值,把這個多項式的係數都計算出來,如果我們得到了所有係數,這個問題就迎刃而解了。

需要對乙個n

階多項式插值,意味著至少需要知道n

個這個多項式的取值。所以將x=0

到n−1

代入矩陣,分別解出對應的行列式,就能得到這些取值,時間複雜度為o(n4)

。最後一步就是多項式插值,可以採用高斯消元或者拉格朗日插值法。 如果用高斯消元,係數矩陣是乙個0

到n−1

的範德蒙矩陣,它的逆矩陣可以直接計算出來。 如果採用拉格朗日插值,需要構造出n

個多項式,滿足當x=i

時值為1

,x≠i

時值為0

。對應取值的行向量與多項式構成的列向量做點積,就能得到這個行列式。

得到行列式之後,我們知道xi

的係數就是有i

條x邊的生成樹數量,所以只需將不超過k

的係數之和計算出來就是答案。

摘自大牛黃勇老師的文章

給大家提出以下 10 點專案管理經驗建議及其目標 1.sprint 第一天,需要將目標定義清楚,並讓團隊所有人都知道 確保建立一致的目標並使之明確 2.若出現需求變更,則優先排到下次迭代,特殊情況需特殊處理 確保本次迭代可以按時完工 3.scrum master 將迭代中的需求分解為任務,每個任務只...

FlexGrid 控制項的使用 摘自 大道至簡

height 200,flexigrid 外掛程式的高度,單位為 pxwidth auto 寬度值,auto 表示根據每列的寬度自動計算 striped true,是否顯示斑紋效果,預設是奇偶互動的形式 novstripe false,minwidth 30,列的最小寬度 minheight 80,...

過來人對程式設計工作的小見解,大牛勿噴

本人接觸到這個程式設計也有段時間了,第一次是因為沒有工作,就到某個機構去進修了,感覺效果顯著的,學會很多基礎的知識。之後就到了鄭州的某一家外包公司,這也許是我最後悔的一段時間吧,到了之後開始面試,很簡單分分鐘過了,進去之後開始無盡的自己測,自己寫,壓根沒人會去理會你,但是過段時間就會有經理過來看看,...