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 定理与矩阵树定理的证明的更多相关文章

  1. @总结 - 7@ 生成树计数 —— matrix - tree 定理(矩阵树定理)与 prüfer 序列

    目录 @0 - 参考资料@ @0.5 - 你所需要了解的线性代数知识@ @1 - 矩阵树定理主体@ @证明 part - 1@ @证明 part - 2@ @证明 part - 3@ @证明 part ...

  2. 【BZOJ3534】[SDOI2014] 重建(矩阵树定理)

    点此看题面 大致题意: 给你一张图,每条边有一定存在概率.求存在的图刚好为一棵树的概率. 矩阵树定理是什么 如果您不会矩阵树定理,可以看看蒟蒻的这篇博客:初学矩阵树定理. 矩阵树定理的应用 此题中,直 ...

  3. 【算法】Matrix - Tree 矩阵树定理 & 题目总结

    最近集中学习了一下矩阵树定理,自己其实还是没有太明白原理(证明)类的东西,但想在这里总结一下应用中的一些细节,矩阵树定理的一些引申等等. 首先,矩阵树定理用于求解一个图上的生成树个数.实现方式是:\( ...

  4. 【Learning】矩阵树定理 Matrix-Tree

    矩阵树定理 Matrix Tree ​ 矩阵树定理主要用于图的生成树计数. 看到给出图求生成树的这类问题就大概要往这方面想了. 算法会根据图构造出一个特殊的基尔霍夫矩阵\(A\),接着根据矩阵树定理, ...

  5. BZOJ 1002 轮状病毒 矩阵树定理

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1002 题目大意: 给定n(N<=100),编程计算有多少个不同的n轮状病毒 思路 ...

  6. 【BZOJ 1016】 1016: [JSOI2008]最小生成树计数 (DFS|矩阵树定理)

    1016: [JSOI2008]最小生成树计数 Description 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树 ...

  7. CodeForces - 156D:Clues(矩阵树定理&并查集)

    题意:给定N点,M边,求添加最少的边使之变为连通图的方案数. 思路:注意题目给出的M边可能带环,即最后生成的不一定是一棵树.但是影响不大.根据矩阵树定理,我们知道生成树的数量=N^(N-2),即点数^ ...

  8. 算法复习——矩阵树定理(spoj104)

    题目: In some countries building highways takes a lot of time... Maybe that's because there are many p ...

  9. 【UOJ#75】【UR #6】智商锁(矩阵树定理,随机)

    [UOJ#75][UR #6]智商锁(矩阵树定理,随机) 题面 UOJ 题解 这种题我哪里做得来啊[惊恐],,, 题解做法:随机\(1000\)个点数为\(12\)的无向图,矩阵树定理算出它的生成树个 ...

  10. 矩阵树定理&BEST定理学习笔记

    终于学到这个了,本来准备省选前学来着的? 前置知识:矩阵行列式 矩阵树定理 矩阵树定理说的大概就是这样一件事:对于一张无向图 \(G\),我们记 \(D\) 为其度数矩阵,满足 \(D_{i,i}=\ ...

随机推荐

  1. 19 request请求数据大全

    1 request.path_info # 获取当前用户请求的url # http://127.0.0.1:8000/customer/list/ ----> /customer/list/ # ...

  2. C# net core 从文件流中获取文件头、匹配文件类型

    常用文件的文件头如下: (以前六位为准) JPEG (jpg),文件头:FFD8FF PNG (png),文件头:89504E47 GIF (gif),文件头:47494638 TIFF (tif), ...

  3. Windows Powershell个性化设置

    1. 设置Powershell prompt只显示当前目录: 2. 设置Powershell title为当前路径: 这个文件的路径为:echo $profile # file location:ec ...

  4. vue上传图片组件

      <template> <!-- 上传控件 用法: <upload-widget v-model="imgUrl"></upload-widg ...

  5. git在linux安装步骤详解!!

    linux上安装,以centos 7.x为例 yum命令安装 yum install gityum install 安装的git不是最新版本,如需最新版本需要自行编译 到下面的网站下载合适的版本 ht ...

  6. vite设置跨域

    1. vite.config.ts或者vite.config.js文件 server: { port: 3001, host: '0.0.0.0', open: true, proxy: { // 代 ...

  7. Windows使用技巧(持续更新)

    如何将应用添加到鼠标右键菜单? 1. Win+R  输入:regedit打开注册表 2. 找到HKEY_CLASSES_ROOT\Directory\Background\shell,在该路径下创建项 ...

  8. Java压缩音频视频工具类

    /** * TODO * * @author Administrator * @version 1.0 * @date 2021/11/5 16:55 */ public class vedio { ...

  9. SAP B1 增加或删除单据,或者是新增修改BOM清单,报错‘出现内部错误时’,一般是控制过程 SBO_SP_TransactionNotification 里面的代码有问题,执行不下去了,因此一行行检查SQL代码,一般就能发现错误所在。

    SAP B1 增加或删除单据,或者是新增修改BOM清单,报错'出现内部错误时',一般是控制过程 SBO_SP_TransactionNotification 里面的代码有问题,执行不下去了,因此一行行 ...

  10. 如何快速开发一套cesium三维系统

    首先我们需要明确我们做的三维应该具有哪些功能,常见的三维系统主要用于展示三维数据,常见的功能应该有,缩放平移,漫游浏览,定位,量测,图层控制等基础功能.在这些基础功能上根据业务需要,再继续扩展,添加一 ...