【读书笔记】组合计数中的行列式方法 专题2 欧拉回路,the BEST theorem
专题2-欧拉回路,the BEST theorem
一些定义
- An Eulerian path is a path in the graph that visits every edge exactly once.
- If the path starts and ends at the same vertex,then it is called an Eulerian cycle.
- We say \(G\) is an Eulerian graph if it has an Eulerian cycle.
一个有向图是欧拉的充要条件
Theorem 1.4.8 A directed graph is Eulerian if and only if it is connected and every vertex \(v\) satisfies \(indeg(v) = outdeg(v)\).
定理1.4.8 一个有向图而言,它是欧拉的当且仅当对所有节点出度等于入度。
BEST定理

BSET定理推论
在欧拉有向图中,每个节点的有向生成树数目都是相等的。

k-ary de Bruijn sequence定义
A k-ary de Bruijn sequence of order n
定义为一个cyclic word,长度是\(k^n\),用的字母表是{0,1,...,k-1},
它的每一个subword正好遍历【长度为\(n\),用字母表为{0,1,...,k-1}组成的\(k^n\)个序列】(每个出现一次)
举个例子,我从维基百科截的图:

BSET theorem在k-ary de Bruijn sequences of order n计数 中的应用
建图呗。下面这也是维基截的图。
比如你想求解2-ary de Bruijn sequences of order 3的数目,每个节点的序列长度是3,
数哈密顿路径。(收集的序列就是点构成的序列)
或者,你想求解2-ary de Bruijn sequences of order 4的数目,每个节点的序列长度是3,
数欧拉环。 (收集的序列就是【边,形如e_1,e_2,e_3...】构成的序列)

下面定理证明中用到的是把长度为n-1的序列作为点,找到欧拉环。

彩蛋-超排列
“我对普通的人类没有兴趣,你们只要能求出超排列的准确公式,就尽管来找我吧!以上”
【读书笔记】组合计数中的行列式方法 专题2 欧拉回路,the BEST theorem的更多相关文章
- 强化学习读书笔记 - 10 - on-policy控制的近似方法
强化学习读书笔记 - 10 - on-policy控制的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton an ...
- 强化学习读书笔记 - 09 - on-policy预测的近似方法
强化学习读书笔记 - 09 - on-policy预测的近似方法 参照 Reinforcement Learning: An Introduction, Richard S. Sutton and A ...
- WC集训DAY2笔记 组合计数 part.1
目录 WC集训DAY2笔记 组合计数 part.1 基础知识 组合恒等式 错排数 卡特兰数 斯特林数 伯努利数 贝尔数 调和级数 后记 补完了几天前写的东西 WC集训DAY2笔记 组合计数 part. ...
- 【记】《.net之美》之读书笔记(二) C#中的泛型
前言 上一篇读书笔记,很多小伙伴说这本书很不错,所以趁着国庆假期,继续我的读书之旅,来跟随书中作者一起温习并掌握第二章的内容吧. 一.理解泛型 1.为什么要使用泛型?-----通过使用泛型,可以极大地 ...
- 《深入理解Java虚拟机:JVM高级属性与最佳实践》读书笔记(更新中)
第一章:走进Java 概述 Java技术体系 Java发展史 Java虚拟机发展史 1996年 JDK1.0,出现Sun Classic VM HotSpot VM, 它是 Sun JDK 和 Ope ...
- 《SQL Server企业级平台管理实践》读书笔记——SQL Server中关于系统库Tempdb总结
Tempdb系统数据库是一个全局资源,可供连接到SQL Server实例的所有用户使用. 存储的内容项: 1.用户对象 用户对象由用户显示创建.这些对象可以位于用户会话的作用域中,也可以位于创建对象所 ...
- 秒味课堂Angular js笔记------Angular js中的工具方法
Angular js中的工具方法 angular.isArray angular.isDate angular.isDefined angular.isUndefined angular.isFunc ...
- Java学习笔记十七:Java中static使用方法
Java中static使用方法 一:Java中的static使用之静态变量: 我们都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的 ...
- 《SQL Server企业级平台管理实践》读书笔记——SQL Server中数据文件空间使用与管理
1.表和索引存储结构 在SQL Server2005以前,一个表格是以一个B树或者一个堆(heap)存放的.每个B树或者堆,在sysindexes里面都有一条记录相对应.SQL Server2005以 ...
- 读书笔记-你不知道的JS中-promise
之前的笔记没保存没掉了,好气,重新写! 填坑-- 现在与将来 在单个JS文件中,程序由许多块组成,这些块有的现在执行,有的将来执行,最常见的块单位是函数. 程序中'将来'执行的部分并不一定在'现在'运 ...
随机推荐
- Little Tiger vs. Deep Monkey(hdu4815)01背包
题:http://acm.hdu.edu.cn/showproblem.php?pid=4815 题意:已知n个题以及每个题答对的得分,给出p概率 小老虎vs小猴子答题:已知小猴子随机答题,请问老虎至 ...
- JS中Promise
Promise的作用: Promise是异步微任务,解决了异步多层嵌套回调的问题,让代码的可读性更高,更容易维护. Promise如何使用: Promise是ES6提供的一个构造函数,可以使用Prom ...
- C# DataTable.Select()根据条件筛选数据
1.前言: 很多时候我们获取到一个表的时候需要根据表的包含的队列去筛选内容,一般来说可能想到的就是遍历整个表的内容进行条件筛选,但是这种方式增加了代码量且易出错,DataTable.Select()就 ...
- DevOps Gitlab环境部署
DevOps 介绍 目录 DevOps 介绍 一.DevOps 介绍 1.1.1 DevOps 介绍 1.1.2 CI/CD简介 1.1.2 Gitlab安装与使用 一.DevOps 介绍 1.1.1 ...
- mysql之数据类型-第三篇
mysql数据库中的每个列都应该有适当的数据类型,用于限制或允许该列中存储的数据.mysql的数据类型分别有整数,浮点数和定点数类型,日期和时间类型,字符串类型和二进制类型等. 整数类型 数值型数据类 ...
- 当jar包执行时,内嵌的文件找不到时,可以这样解决!
1.加载是可以加载到的,但是只能是以流的形式存在. 2.如果要按文件进行加载,可以新建一个文件,然后以流的形式写入到新的文件中. 3.加载这个新的文件来进行处理.
- 【Android异常】关于Notification启动时,startForeground报错
遇到两个报错: 第一个权限问题报错,好解决 startForeground requires android.permission.FOREGROUND_SERVICE Manifest给下权限就行 ...
- c++ read and save txt
read and save #include "util/image_util.h" #ifdef USE_PANGOLIN_VIEWER #include "pango ...
- <c:forEach>循环获取下一次循环数据
<c:forEach>循环获取下一次循环数据 实现案例类似于多级导航栏下拉.双循环便利ul.li,利用外层循环的index获取数据.动态id设置. varLista[vs.index][l ...
- Redis 集群模式的安装与配置【源码安装redis-7.0.5】
Redis最新版下载地址:http://download.redis.io/releases/redis-7.0.5.tar.gz 步骤如下: 1)wget http://download.redis ...