有向图欧拉回路条数-BEST定理
来源:互联网 发布:python面试题 编辑:程序博客网 时间:2024/05/16 17:59
教学香肠系列……
给定一张所有点入度=出度的有向图,求欧拉回路条数。
为了避免出现重复,对于这个无向图,我们先确定一条
找一个以
容易证明,这样做的一个方案唯一对应一条欧拉回路。
证明:
=>:构造法,从1号节点出发,先走起始边,每到一个点,优先走非树边,再走树边。对于非树边,按照指定的顺序走,即,如果第一条边没走过,走第一条,否则走第二条,…,若所有非树边都走过,则走树边。由于所有点入度=出度,所以不会有无边可走的情况,直到回到
显然每条边至多走一次,如何证明每条边至少走了一次?
性质1:如果一个点有未走过的出边,则这个点出发的树边一定未走过,因为树边是最后走的
性质2:如果一个节点出发的树边未走过,则它父亲节点出发的树边一定也未走过,因为每个节点入度=出度
然后就好办了,反证法,假设存在一条边没走过,那么这条边的树边一定也没走过,进而这条边父亲的树边也没走过……以此类推,
<=:反向就很简单了,对于欧拉回路我们从
只需证明我们选定的这些树边不会成环即可。
由于
假如这些边存在环,那么从环上一个点出发,最后一次离开这个点走的是树边,那么沿着树边走下去,最后仍然会回到这个点,而这个点的最后一条出边已走过,因此欧拉回路终止于此节点。而此节点不是
这样我们就将有向图欧拉回路一一对应了上述方案,那么方案数是多少?
对于每个生成的内向树,
那么以
最终答案为
其中
顺带一提,由于有向图的欧拉路径条数恒定不随根节点改变而改变,所以
代码自然是没有的啦。。你可曾见过老年选手打代码?
- 有向图欧拉回路条数-BEST定理
- 欧拉回路基本定理
- poj 2513(trie树+并查集+欧拉回路条件)(记得要初始化指针数组)
- 【BZOJ3659】Which Dreamed It【有向图欧拉回路计数】【matrix tree定理】【BEST定理】【高斯消元】
- hdu 2680 Choose the best route(注意有向图的处理)
- BNU 32788 The best trade path (有向图的最小环)
- bzoj 4894: 天赋 矩阵树定理求有向图生成树数量
- hdu 1116(欧拉回路,有向通路数)
- HDU 3191 有向图次短路条数
- 有向图无回路定长路径数求解
- 高级算法 应用主项定理Master Method 求时间复杂度 判断有向图是否有环
- POJ 1265 Area (有向面积, pick 定理)
- HDU1524有向无环图SG定理的应用
- Dilworth定理与有向无圈图的链覆盖
- ZOJ 3319 有向图加边成环方法数
- CodePlus 2017 12 月赛 白金元首与独舞 矩阵树定理求有向图生成树数量
- UVA10596欧拉回路加特判
- 图--有向图
- 伪元素使用的一点儿小技巧
- (2)Http协议内容解读:请求行、请求头
- 51Nod 1757(二分&网络流)
- SHUOJ 举重
- 基础知识积累
- 有向图欧拉回路条数-BEST定理
- bzoj 4722: 由乃 线段树+倍增+搜索
- HDU 1007 Quoit Design(分治)
- eclipse快捷键
- Itween---综合
- MobileSelect联动插件的使用和遇到的问题总结
- Android 导出traces.txt 遇到的坑
- python判断一个变量是否存在
- 欢迎使用CSDN-markdown编辑器