Loading

矩阵树定理学习笔记

1 模板

1.1 定理内容

一张图的生成树个数即为其基尔霍夫矩阵的行列式。

1.2 行列式

1.3 无向图

\(A[i][i]\):点 \(i\) 的点度。

\(B[i][j]\):连接 \(i,j\) 的边数。

基尔霍夫矩阵即为 \(A-B\)

1.4 有向图

1.4.1 外向树(从 \(1\) 向别的点连)

\(A[i][i]\):点 \(i\) 的入度。

\(B[i][j]\):连接 \(i,j\) 的边数。

基尔霍夫矩阵即为 \(A-B\)

1.4.2 内向树(从别的点向 \(1\) 连)

\(A[i][i]\):点 \(i\) 的出度。

\(B[i][j]\):连接 \(i,j\) 的边数。

基尔霍夫矩阵即为 \(A-B\)

2 练习

2.1 [FJOI2007]轮状病毒

练习 python。

2.2 【模板】Matrix-Tree 定理

模板题。

2.3 [SHOI2016]黑暗前的幻想乡

模板题II。

暴力枚举公司的子集计算方案然后容斥即可。

2.4 [SDOI2014]重建

数学题。

注意到每棵树的贡献是 \(\prod\limits_{i\in\text{tree}}p_i\prod\limits_{i\not\in\text{tree}}(1-p_i)\)

我们把每一项除以 \(\prod\limits_i(1-p_i)\)

然后每棵树的贡献就是 \(\prod\limits_i(1-p_i)\prod\limits_{i\in\text{tree}}\frac{p_i}{1-p_i}\)

然后就做完了。

posted @ 2021-01-20 13:49  dXqwq  阅读(176)  评论(0编辑  收藏  举报