BEST 定理与矩阵树定理的证明
BEST 定理:计算有向图的欧拉回路数量
欧拉图 \(G\) 的欧拉回路个数为 \(T_s(G)\prod(out_i-1)!\),其中 \(T_s(G)\) 代表以 \(s\) 为根的内向树个数,\(out_i\) 代表点 \(i\) 的出度。同时由此可见,对于一个欧拉图,其任意一个点为根的内向树个数相同。
证明:
除去点 \(s\),考虑其它点在欧拉回路上的最后一条出边 \(e\),它们一定形成一棵以 \(s\) 为根的内向树,因为如果有环,那么显然与所有边都最后一次出现矛盾。然后将所有点其余的出边按随意顺序排列,方案数为 \(out_s!\prod\limits_{i\neq s}(out_i-1)!\),发现每种排法可以唯一对应一种欧拉回路,每种欧拉回路也能唯一找到一棵这样的生成树。但是注意这样的排法中每 \(out_s\) 条路径是循环同构的,要除掉,于是答案即为 \(T_s(G)\prod(out_i-1)!\)。
矩阵树定理的证明
这里只写有向图内向树的证明,其余两者类似。
写一下式子:\(\sum\limits_{p}(-1)^{\tau(p)}\sum\limits a_{i,p_i}\)。
考虑组合意义:对于一个排列 \(p\),如果 \(i\neq p_i\),那么视为选择了一条 \(i\rightarrow p_i\) 的一条一类边,系数为 \(-1\);否则视为选择了任意一条 \(i\rightarrow j\) 的边,系数为 \(1\)(由于有 \(deg_i\) 种方案所以符合式子)。
可以发现所有 \(-1\) 边形成若干个环,所有 \(1\) 边形成若干个环和一棵以 \(1\) 为根的内向树。
我们不希望图中能存在环,于是考虑将某个 \(-1\) 环的贡献和对应的 \(1\) 环的贡献抵消掉。设其环长为 \(l\),则给它一个 \((-1)^{(l-1)}\) 的系数,发现就能顺利抵消了。
于是我们只需要证明:所有非自环的 \((l-1)\) 之和的奇偶性与 \(\tau(p)\) 的奇偶性相同。
注意对于一个环,交换任意两个元素后变成两个环,\(\sum(l-1)\) 减少 \(1\);对于排列,交换任意两个数后逆序对的奇偶性改变。
于是可以一直交换,直到最后变成环都是自环,排列为 \(1\sim n\),得证。
BEST 定理与矩阵树定理的证明的更多相关文章
- @总结 - 7@ 生成树计数 —— matrix - tree 定理(矩阵树定理)与 prüfer 序列
目录 @0 - 参考资料@ @0.5 - 你所需要了解的线性代数知识@ @1 - 矩阵树定理主体@ @证明 part - 1@ @证明 part - 2@ @证明 part - 3@ @证明 part ...
- 【BZOJ3534】[SDOI2014] 重建(矩阵树定理)
点此看题面 大致题意: 给你一张图,每条边有一定存在概率.求存在的图刚好为一棵树的概率. 矩阵树定理是什么 如果您不会矩阵树定理,可以看看蒟蒻的这篇博客:初学矩阵树定理. 矩阵树定理的应用 此题中,直 ...
- 【算法】Matrix - Tree 矩阵树定理 & 题目总结
最近集中学习了一下矩阵树定理,自己其实还是没有太明白原理(证明)类的东西,但想在这里总结一下应用中的一些细节,矩阵树定理的一些引申等等. 首先,矩阵树定理用于求解一个图上的生成树个数.实现方式是:\( ...
- 【Learning】矩阵树定理 Matrix-Tree
矩阵树定理 Matrix Tree 矩阵树定理主要用于图的生成树计数. 看到给出图求生成树的这类问题就大概要往这方面想了. 算法会根据图构造出一个特殊的基尔霍夫矩阵\(A\),接着根据矩阵树定理, ...
- BZOJ 1002 轮状病毒 矩阵树定理
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1002 题目大意: 给定n(N<=100),编程计算有多少个不同的n轮状病毒 思路 ...
- 【BZOJ 1016】 1016: [JSOI2008]最小生成树计数 (DFS|矩阵树定理)
1016: [JSOI2008]最小生成树计数 Description 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树 ...
- CodeForces - 156D:Clues(矩阵树定理&并查集)
题意:给定N点,M边,求添加最少的边使之变为连通图的方案数. 思路:注意题目给出的M边可能带环,即最后生成的不一定是一棵树.但是影响不大.根据矩阵树定理,我们知道生成树的数量=N^(N-2),即点数^ ...
- 算法复习——矩阵树定理(spoj104)
题目: In some countries building highways takes a lot of time... Maybe that's because there are many p ...
- 【UOJ#75】【UR #6】智商锁(矩阵树定理,随机)
[UOJ#75][UR #6]智商锁(矩阵树定理,随机) 题面 UOJ 题解 这种题我哪里做得来啊[惊恐],,, 题解做法:随机\(1000\)个点数为\(12\)的无向图,矩阵树定理算出它的生成树个 ...
- 矩阵树定理&BEST定理学习笔记
终于学到这个了,本来准备省选前学来着的? 前置知识:矩阵行列式 矩阵树定理 矩阵树定理说的大概就是这样一件事:对于一张无向图 \(G\),我们记 \(D\) 为其度数矩阵,满足 \(D_{i,i}=\ ...
随机推荐
- Error running 'tm8': Cannot load C:\Users\Administrator\.IntelliJIdea2019.3\system\tomcat\Unnamed_jymes_3\conf\server.xml (系统找不到指定的文件。)
救命救命,由于脑壳被门夹了去更改了idea的配置,导致重启项目报错!又是给自己挖坑的一天,唉!!! 主要是看报错信息还一直以为是tomcat的问题,然后试了很多方法,比如查看配置的tomcat路径.重 ...
- 【已解决】robotframework 连接oracle数据库返回结果中文显示乱码
问题描述:查询数据库返回信息有中文的时候会显示unicode的样式,如图: 环境:robotframework 3.0.x 解决方法: 找到Python安装目录下的\Lib\site-packages ...
- centos7 硬盘扩容
参考 linux系统下,新加硬盘并把现有的/home目录扩容 最后加的容量在/目录 而不是在/home目录,而我本来把/home目录独立挂载在一个分区了 创建逻辑卷.可用使用命令 pvcreate / ...
- c# WinForm 多次点击这个按钮会弹出多个窗体, 怎么才能只显示一个窗体。解决方案!
第一种解决方法 "单例" <mark> 书上有 private void toolStripLabel1_Click(object sender, EventArgs ...
- java中锁的应用(ReentrantLock)
package com.xielu.test; public class explicit { private static Lock lock = new ReentrantLock(); priv ...
- Python+Django(4)——创建其他网页(模板继承)
模板继承: 1,修改主页 父模板:抽取通用元素,在index.html同级目录下新建base.html <p> <a href="{% url 'learning_logs ...
- sqlite3 replace函数服务器端替换一个字段中数据的例子 ;拼接字段字符串
1.把字段filePath中所有类似 '/usr/local/Trolltech/%'的字符串都替换成 '/zzzzz/' update EstDlpFileAttribute set ...
- 题解,洛谷P3435
根据题意,分析如右图 显然,对于每个前缀,有这样的性质A==B==C,所以,周期最长则a最短,即求该字符串的最短公共前后缀.通过kmp算法中nex数组的迭代,很容易求得最短前后缀. for(int i ...
- Q:带宽检测 iperf工具
一.下载 iperf的下载地址为:https://iperf.fr/iperf-download.php,选择相应的版本 linux安装 rpm -qa|grep -i rperf rpm -ivh ...
- Servlet与JSP学习笔记
一.Servlet 注册 web.xml里边注册Servlet ,定义格式如下: <servlet> <servlet-name>helloworld</servlet- ...