矩阵树

行列式

定义一个矩阵 A 的行列式为:

det(A)=p(1)μ(p)Ai,pi

其中 p 是枚举的所有排列,μ 是逆序对数

一些性质:

  • det(I)=1

  • 交换矩阵两行,行列式变号

  • 每一行乘 t,行列式乘 t

  • |a+ab+bcd|= |abcd|+ |abcd| ,用分配率证明

  • 某两行一样的矩阵行列式为零,因为交换后取反,而本质相同,只能都是零

  • 矩阵一行加上另一行的倍数行列式不变

  • 伴随矩阵是代数余子式构成的矩阵的转置.

  • 伴随矩阵等于逆矩阵乘行列式

因此可以通过矩阵求逆来得到所有的代数余子式


B. B

把一组数看成矩阵 (i,j)1,求解行列式,由于只与奇偶性有关,那么计算式中的 1 可以忽略
去掉一个相当于是代数余子式,用逆矩阵来求即可


矩阵树定理

A 为邻接矩阵,D 为度数矩阵(出边减入边加),矩阵 K=DAk 任意一个 n1 阶主子式的行列式值为图中生成树的个数

对于有向图而言,所求是以 1 为根的生成树
若度数统计为入边和则为外向树,反之为内向树

证明不会


P4336 [SHOI2016]黑暗前的幻想乡

数据范围小到可以容斥,那么枚举商家集合容斥即可


智商锁

好吧这其实是个诈骗题,矩阵树这个东西还是太复杂了,并没有什么好方法进行构造
那么考虑乱搞,因为生成树的个数时 nn2 级别的,那么可以视作随机的数
那么可以随机 1000 个图,然后选取 x 个使得它们的乘积满足条件
这个 x 在折半后可以做到 4,之后这个概率就非常大了


CF917D Stranger Trees

考虑用生成函数来限定这个恰好 k
那么对于原树的边设为 x+1,求出的最终函数的每一项即为所求
考虑不用多项式的手段,而是转而用拉格朗日插值计算出前 n 个的矩阵树的值,用求系数的方式插出答案


P6624 [省选联考 2020 A 卷] 作业题

其问题转化为要求所有生成树的边权之和
做法是这样的,将矩阵的每一个点都变成 ax+b 的形式,初始化为 wix+1 的形式
最后 x 项的系数就是答案
这样做的原因其实也很好理解,其实就是计算每一条边选择时的方案数 × 边权
那么一次项一定是某一个边权再乘上其它所有的方案得来的

posted @   y_cx  阅读(80)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示