首页 > 其他分享 >矩阵树定理

矩阵树定理

时间:2023-09-07 20:11:10浏览次数:41  
标签:原图 有向图 定理 矩阵 ij cases neq

一个用来求一张图的生成树个数的方法。

基础结论

在无向图中,定义一个点的度数为 \(d_i\),边 \((u,v)\) 的数量为 \(c_{u,v}\)。
在有向图中,定义一个点的入度为 \(ind_i\),出度为 \(outd_i\),边 \(u\to v\) 的数量为 \(t_{u,v}\)。

先把结论扔出来:

求无向图生成树:
记矩阵 \(M=(m_{ij})_{n\times n}\),其中 \(m_{ij}=\begin{cases}d_i&,i=j\\-c_{i,j}&,i\neq j\end{cases}\)。
则删去这个矩阵第 \(i\) 行和第 \(i\) 列,得到的矩阵 \(M'\) 的行列式即为原图的生成树数。

求有向图外向树:
记矩阵 \(M_{out}=(m_{ij}){n\times n}\),其中 \(m_{ij}=\begin{cases}ind_i&,i=j\\-t_{i,j}&,i\neq j\end{cases}\)。
则删去这个矩阵第 \(i\) 行和第 \(i\) 列,得到的矩阵 \(M'\) 的行列式即为原图以 \(i\) 为根的外向生成树数。

求有向图内向树:
记矩阵 \(M_{out}=(m_{ij}){n\times n}\),其中 \(m_{ij}=\begin{cases}outd_i&,i=j\\-t_{i,j}&,i\neq j\end{cases}\)。
则删去这个矩阵第 \(i\) 行和第 \(i\) 列,得到的矩阵 \(M'\) 的行列式即为原图以 \(i\) 为根的内向生成树数。

证明就不在这里给出。

有了这个结论,我们就可以解决很多问题了:
Luogu P6178 【模板】Matrix-Tree 定理
[HEOI2015] 小 Z 的房间
[CQOI2018] 社交网络
[SHOI2016] 黑暗前的幻想乡

拓展延伸

其实对于对于树计数可以不是单纯的单个树求乘积,所有树求加和,也就是我们求的是 \(\sum\limits_{T}\prod\limits_{e\in T}w(e)\)。

然而内部不一定得是数乘,只要满足 \(<W,+,\times>\) 构成环即可,比如可以是FWT等卷积。

[THUPC2019] 找树

考虑统计每一种可能结果的数量,找到其中值非零且最大的即可。
每一位按照它的运算方式使用对应的 FWT 方式即可,复杂度 \(O(n^32^w)\)。

标签:原图,有向图,定理,矩阵,ij,cases,neq
From: https://www.cnblogs.com/Xun-Xiaoyao/p/17685949.html

相关文章

  • LA@相似对角化判定定理和计算方法
    文章目录方阵相似对角化引言相似对角化变换矩阵的性质构造对角化变换矩阵方阵可对角化判定定理......
  • LA@方阵相似@相似矩阵的性质
    文章目录相似矩阵引言相似矩阵定义相似变换相似变换矩阵相似矩阵的矩阵多项式和特征值相同推论:与对角阵相似的矩阵性质定理相似矩阵性质相似矩阵的乘方性质相似矩阵和矩阵多项式相似对角阵对角阵多项式的展开小结相似矩阵引言对角阵是矩阵中最简单的一类矩阵对角阵相关的乘法运......
  • AA@多项式@余式定理@根和一次因式的关系
    文章目录多项式函数余数定理(余式定理)根(零点)重根和单根根与一次因式的关系......
  • 曼哈顿距离矩阵
    曼哈顿距离矩阵码题集OJ-曼哈顿距离矩阵(matiji.net)这道题主要是寻找规律然后总结出对应的表达式求解。从图中可以看出数字的增加是一层一层增长,每次的增加量为4。在图中分别标出来每个象限的推导点。我们有题目可知,我们需要求得的曼哈顿距离都是输入的(x,y)到原点(0,0)的距......
  • 单应矩阵及图像拼接的延申
    最近在研究两个相机的图像拼接问题。偶然读到了一篇博客,突然发现这篇博文的作者功力相当深厚,对单应矩阵和深度图像的研究都很独到。特此记录以下:https://zhuanlan.zhihu.com/p/636135357https://zhuanlan.zhihu.com/p/608660362附作者和他的研究内容,其他文章也很不错。  ......
  • 【230905-1】正弦定理之证明
    ......
  • Python练习:嵌套列表解析,讲3*4的矩阵转换成4*3的矩阵
      1#嵌套列表解析,讲3*4的矩阵转换成4*3的矩阵23matrix=[[1,2,3,4],4[5,6,7,8],5[9,10,11,12]]678forrowinmatrix:9print("遍历每一行:",row)101112print("\n")1314s=[[row[i]forrow......
  • MIT 18.06 线性代数 - 22. 对角化和矩阵的幂
    关于斐波那契数列计算第n个数,使用矩阵特征向量和特征值求解:Fibonacci数列的定义是:\(F(0)=0\),\(F(1)=1\)并且对于\(n>1\),\(F(n)=F(n-1)+F(n-2)\)。我们可以使用线性代数中的特征向量和特征值来求解Fibonacci数列。首先,我们可以将Fibonacci数列写为一个线性系统的形式:\[\b......
  • 邻接矩阵的DFS
    采用递归的方法1#include<stdio.h>2#include<stdlib.h>34#defineMaxSize2056typedefstruct{7intVer[MaxSize];8intEdge[MaxSize][MaxSize];9intVerNum;10intEdgeNum;11}Graph;1213voidCreat......
  • 向量,矩阵,线性基
    向量定义既有大小又有方向的量称为向量,记作$\vec{a}$。如果这个向量还有一个起点,那么它就成为了一条有向线段。有向线段三要素:起点,方向,长度。有向线段$\overrightarrowAB$......