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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

行列式、LGV、矩阵树学习笔记

發布時間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 行列式、LGV、矩阵树学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前置知識:矩陣、高斯消元

行列式

行列式定義

\[\text{det(A)}=\sum_{p}{(-1)^{\mathrm{sgn}(p)}\prod{A_{i,p_i}}} \]

其中 \(\text{sgn}(p)\) 表示排列 \(p\) 的逆序對個數。

行列式性質

  • 進行一次矩陣轉職,行列式不變。(易證)
  • 行列式任意一行按比例擴大,行列式的值按同樣比例擴大。(易證)
  • 行列式中交換任意兩行,行列式反號。(易證)
  • 行列式中若有兩行成比例,則行列式值為 \(0\)。(通過第二條證明)
  • 行列式中若有一行可以表示為兩個數列相加,則行列式為兩個行列式的值的和。(證明如下)
\[\text{det}(A)=\sum_p(-1)^{\mathrm{sgn}(p)}\times(B_{k,p_k}+C_{k,p_k})\times \prod_{i=1}^{n~\text{and}~i\not=k}{a_{i,p_i}}=\mathrm{det}(B)+\mathrm{det}(C) \]

行列式求值

P7112 【模板】行列式求值

根據上面五條性質,可以將矩陣一步步消為左下角全是 \(0\) 的舉證,類似于高斯消元。最后將矩陣的對角線乘起來即可。

n=rd(),mod=rd(); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) a[i][j]=rd()%mod; for(int i=1;i<=n;i++) {for(int j=i+1;j<=n;j++){while(a[j][i]){ll tmp=a[i][i]/a[j][i];for(int k=i;k<=n;k++)a[i][k]=(a[i][k]-tmp*a[j][k]%mod+mod)%mod;swap(a[i],a[j]),w=-w;}} } for(int i=1;i<=n;i++) ans=ans*a[i][i]%mod; printf("%lld\n",(mod+w*ans)%mod);

LGV 引理(Lindstrom-Gessel-Viennot lemma)

LGV 引理 內容

  • \(G\) 是一個有限的帶權有向無環圖。每個頂點的度是有限的,不存在有向環(所以路徑數量是有限的)。
  • 起點 \(A=\{a_1,\cdots,a_n\}\),終點 \(B=\{b_1,\cdots,b_n\}\)。
  • 每條邊 \(e\) 有邊權 \(\omega_e\)。
  • 對于一個有向路徑 \(P\),定義 \(\omega(P)\) 為路徑上所有邊權的。
  • 對任意頂點 \(a,b\),定義 \(e(a,b)=\sum\limits_{P:a \to b}{\omega(P)}\),所有 \(a\)\(b\) 的路徑的 \(\omega\) 之和。

設矩陣

\[M={\begin{pmatrix}e(a_{1},b_{1})&e(a_{1},b_{2})&\cdots &e(a_{1},b_{n})\\e (a_{2},b_{1})&e(a_{2},b_{2})&\cdots &e(a_{2},b_{n})\\\vdots &\vdots &\ddots &\vdots \\e(a_{n},b_{1})&e(a_{n},b_{2})&\cdots &e(a_{n},b_{n})\end{pmatrix}} \]

\(A\)\(B\) 的不相交路徑組 \(P=(P_1,P_2,\cdots,P_n)\)\(P_i\) 表示從 \(a_i\)\(b_{\sigma(i)}\) 的一條路徑,其中 \(\sigma\) 是一個排列(反映了這個排列的映射關系),并且滿足對任意 \(i\not=j\)\(P_i\)\(P_j\) 沒有公共點。記 \(\sigma(P)\) 表示 \(P\) 對應 \(B\) 的排列。

引理說明,\(M\) 的行列式是所有從 \(A\)\(B\) 的不相交路徑 \(P=(P_1,\cdots,P_n)\) 的帶符號和。

\[\mathrm{det}(M)=\sum_{P:A\to B}{(-1)^{\mathrm{sgn}(\sigma(P))}\prod_{i=1}^{n}\omega(P_i)} \]

證明

反證法,即只需證明:(其中 \(P:A\rightarrow B\),存在 \(i\not=j\)\(P_i\)\(P_j\) 有交點)

\[\mathrm{det}(M)=\sum_{P:A\rightarrow B}(-1)^{\mathrm{sgn}(\sigma(P))}\prod_{i=1}^{n}{\omega(P_i)}=0 \]

假設存在一個 \(P\),其中 \(P_i\)\(P_j\) 相交,則 \(a_i\rightarrow b_{\sigma(i)}\)\(a_j\rightarrow b_{\sigma(j)}\) 相交。那么我們將 \(b_{\sigma(i)}\)\(b_{\sigma(j)}\) 互換,最后答案不變而奇偶性相反,一定存在 \(P'=-P\)。因此,如果這一組路徑有交點,那么一定被抵消,原命題得證。

應用

P6657 【模板】LGV 引理

由于在網格上,如果 \(\sigma\not=(1,2,\cdots,n)\),則顯然沒有解。

因此直接

\[\text{det}(M)=\sum_{P:A\rightarrow B}{1} \]

構造矩陣,\(e(a_i,b_j)=\binom{b_j-a_i+n-1}{n-1}\) 后求行列式即可。

P7736 [NOI2021] 路徑交點

乍一眼好像就是 LGV 模型。

就是每一次的 \(\sigma(P)\) 變為了每一層的點對,但是發現最終的排列方式的逆序對數的奇偶性和中間怎樣連接沒有關系,所以可以直接 \((-1)^{\mathrm{sgn}(\sigma(P)}\),似乎就做完了。

矩陣樹定理

咕咕咕

總結

以上是生活随笔為你收集整理的行列式、LGV、矩阵树学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

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