矩阵树定理

没有证明,快逃。

概念

矩阵树定理,用于一类图论问题的生成树计数。

通常给出一个有向图或无向图,需要求出图中的 内向生成树 / 外向生成树 / 生成树的 个数 / 权值乘积之和等。

这类问题可以通过矩阵树定理转化成行列式求值。

时间复杂度 O(n3).

内容

以无向图为例。

D 为无向图的度数矩阵,D[i][j]={deg(i),i=j0,ij.

A 为无向图的邻接矩阵,A[i][j]=(u,v)E[u=i,v=j].

则该无向图的基尔霍夫(Kirchoff)矩阵为 DA.

矩阵树定理:该无向图以 r 为根的生成树个数 等价于 基尔霍夫矩阵去掉第 r 行第 r 列得到的行列式的值。

具体证明不会,懒得学了,可能也学不会。

对于有向图:

  • 求外向生成树个数:令 D 为入度矩阵。

  • 求内向生成树个数:令 D 为出度矩阵。


变式:定义生成树的权值为其中所有边权的乘积,求图中所有生成树的权值之和。

实际上矩阵树定理等价于求 T(u,v)Tw(u,v).

所以只需要令 D[i][j]={(i,k)Gw(i,k),i=j0,ij.

A[i][j]=(i,j)Gw(i,j).

这样就可以直接套用矩阵树定理求了。

模数不为 0 的时候直接辗转相除求,时间复杂度是 O(n2(n+logn)),可能略微卡常。

posted @   kymru  阅读(61)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示
主题色彩