9.周冬《生成树的计数及其应用》

合集下载

离散数学中的生成树与生成树计数

离散数学中的生成树与生成树计数

离散数学是计算机科学中的重要学科,其中生成树是一个重要的概念。

在图论中,生成树是一棵树,它包含了图中的所有顶点,并且是由图边组成的无环连通子图。

生成树在图论中有着重要的应用,特别是在计算机网络、运筹学和电路设计等领域。

生成树的概念与基础就是组成它的边是有限的,并且连接图中的所有顶点,但没有形成圈回到起点。

生成树通常是用来描述一个系统的最小连接方式。

生成树可以应用于计算机网络的设计中,用于构建最小生成树算法,以便在网络中选择最小的数据传输路径。

此外,在运筹学中,生成树被用于求解最小生成树问题,即为一个加权图找到一棵包含所有顶点的生成树,使得树中边的权重之和最小。

在离散数学中,生成树计数是一个重要的研究分支。

生成树计数是指对给定图,计算其生成树的数目。

生成树计数的问题可以通过使用基于图论和组合数学的算法来解决。

通常,生成树计数的问题与相应图的特性和性质密切相关。

对于一个简单图来说,如果图中任意两点之间至少有一条边,那么该图一定存在生成树。

对于有 n 个顶点的连通图来说,它的生成树数量可以通过Cayley公式计算得到。

Cayley公式表明,一个有 n 个标号的顶点的完全图的生成树数量等于 n^(n-2)。

而对于非完全图,生成树的计数问题则较为困难。

在处理非完全图的生成树计数问题时,可以使用基于递归和动态规划的算法来解决。

一个常见的方法是使用Kirchhoff矩阵树定理,它将生成树计数的问题转化为计算矩阵的行列式的问题。

Kirchhoff矩阵树定理提供了一种计算给定图的生成树数目的有效算法,通过计算图的基尔霍夫矢量的一个特征值,可以得到图的生成树的数目。

另一个常见的方法是使用Prufer编码,它是一个用于描述无环连通图的序列。

通过Prufer编码,我们可以将计算生成树的问题转化为计数树的问题。

通过对无向图进行Prufer编码,我们可以计算出生成树的数目,并且可以根据生成树的数目来确定该无向图的种类和特征。

NOI国家集训队论文分类(至2008)(摘抄自C博客)

NOI国家集训队论文分类(至2008)(摘抄自C博客)

摘抄自C博客组合数学计数与统计2001 - 符文杰:《Pólya原理及其应用》2003 - 许智磊:《浅谈补集转化思想在统计问题中的应用》2007 - 周冬:《生成树的计数及其应用》2008 - 陈瑜希《Pólya计数法的应用》数位问题2009 - 高逸涵《数位计数问题解法研究》2009 - 刘聪《浅谈数位类统计问题》动态统计2004 - 薛矛:《解决动态统计问题的两把利刃》2007 - 余江伟:《如何解决动态统计问题》博弈2002 - 张一飞:《由感性认识到理性认识——透析一类搏弈游戏的解答过程》2007 - 王晓珂:《解析一类组合游戏》2009 - 曹钦翔《从“k倍动态减法游戏”出发探究一类组合游戏问题》2009 - 方展鹏《浅谈如何解决不平等博弈问题》2009 - 贾志豪《组合游戏略述——浅谈SG游戏的若干拓展及变形》母函数2009 - 毛杰明《母函数的性质及应用》拟阵2007 - 刘雨辰:《对拟阵的初步研究》线性规划2007 - 李宇骞:《浅谈信息学竞赛中的线性规划——简洁高效的单纯形法实现与应用》置换群2005 - 潘震皓:《置换群快速幂运算研究与探讨》问答交互2003 - 高正宇:《答案只有一个——浅谈问答式交互问题》猜数问题2003 - 张宁:《猜数问题的研究:<聪明的学生>一题的推广》2006 - 龙凡:《一类猜数问题的研究》数据结构数据结构2005 - 何林:《数据关系的简化》2006 - 朱晨光:《基本数据结构在信息学竞赛中的应用》2007 - 何森:《浅谈数据的合理组织》2008 - 曹钦翔《数据结构的提炼与压缩》结构联合2001 - 高寒蕊:《从圆桌问题谈数据结构的综合运用》2005 - 黄刚:《数据结构的联合》块状链表2005 - 蒋炎岩:《数据结构的联合——块状链表》2008 - 苏煜《对块状链表的一点研究》动态树2006 - 陈首元:《维护森林连通性——动态树》2007 - 袁昕颢:《动态树及其应用》左偏树2005 - 黄源河:《左偏树的特点及其应用》跳表2005 - 魏冉:《让算法的效率“跳起来”!——浅谈“跳跃表”的相关操作及其应用》2009 - 李骥扬《线段跳表——跳表的一个拓展》SBT2007 - 陈启峰:《Size Balance Tree》线段树2004 - 林涛:《线段树的应用》单调队列2006 - 汤泽:《浅析队列在一类单调性问题中的应用》哈希表2005 - 李羽修:《Hash函数的设计优化》2007 - 杨弋:《Hash在信息学竞赛中的一类应用》Splay2004 - 杨思雨:《伸展树的基本操作与应用》图论图论2005 - 任恺:《图论的基本思想及方法》模型建立2004 - 黄源河:《浅谈图论模型的建立与应用》2004 - 肖天:《“分层图思想”及其在信息学竞赛中的应用》网络流2001 - 江鹏:《从一道题目的解法试谈网络流的构造与算法》2002 - 金恺:《浅谈网络流算法的应用》2007 - 胡伯涛:《最小割模型在信息学竞赛中的应用》2007 - 王欣上:《浅谈基于分层思想的网络流算法》2008 - 周冬《两极相通——浅析最大—最小定理在信息学竞赛中的应用》最短路2006 - 余远铭:《最短路算法及其应用》2008 - 吕子鉷《浅谈最短径路问题中的分层思想》2009 - 姜碧野《SPFA算法的优化及应用》欧拉路2007 - 仇荣琦:《欧拉回路性质与应用探究》差分约束系统2006 - 冯威:《数与图的完美结合——浅析差分约束系统》平面图2003 - 刘才良:《平面图在信息学中的应用》2007 - 古楠:《平面嵌入》2-SAT2003 - 伍昱:《由对称性解2-SAT问题》最小生成树2004 - 吴景岳:《最小生成树算法及其应用》2004 - 汪汀:《最小生成树问题的拓展》二分图2005 - 王俊:《浅析二分图匹配在信息学竞赛中的应用》Voronoi图2006 - 王栋:《浅析平面Voronoi图的构造及应用》偶图2002 - 孙方成:《偶图的算法及应用》树树2002 - 周文超:《树结构在程序设计中的运用》2005 - 栗师:《树的乐园——一些与树有关的题目》路径问题2009 - 漆子超《分治算法在树的路径问题中的应用》最近公共祖先2007 - 郭华阳:《RMQ与LCA问题》划分问题2004 - 贝小辉:《浅析树的划分问题》数论欧几里得算法2009 - 金斌《欧几里得算法的应用》同余方程2003 - 姜尚仆:《模线性方程的应用——用数论方法解决整数问题》搜索搜索2001 - 骆骥:《由“汽车问题”浅谈深度搜索的一个方面——搜索对象与策略的重要性》2002 - 王知昆:《搜索顺序的选择》2005 - 汪汀:《参数搜索的应用》启发式2009 - 周而进《浅谈估价函数在信息学竞赛中的应用》优化2003 - 金恺:《探寻深度优先搜索中的优化技巧——从正方形剖分问题谈起》2003 - 刘一鸣:《一类搜索的优化思想——数据有序化》2006 - 黄晓愉:《深度优先搜索问题的优化技巧》背包问题2009 - 徐持衡《浅谈几类背包题》匹配2004 - 楼天城:《匹配算法在搜索问题中的巧用》概率概率2009 - 梅诗珂《信息学竞赛中概率问题求解初探》数学期望2009 - 汤可因《浅析竞赛中一类数学期望问题的解决方法》字符串字符串2003 - 周源:《浅析“最小表示法”思想在字符串循环同构问题中的应用》多串匹配2004 - 朱泽园:《多串匹配算法及其启示》2006 - 王赟:《Trie图的构建、活用与改进》2009 - 董华星《浅析字母树在信息学竞赛中的应用》后缀数组2004 - 许智磊:《后缀数组》2009 - 罗穗骞《后缀数组——处理字符串的有力工具》字符串匹配2003 - 饶向荣:《病毒的DNA———剖析一道字符匹配问题解析过程》2003 - 林希德:《求最大重复子串》动态规划动态规划2001 - 俞玮:《基本动态规划问题的扩展》2006 - 黄劲松:《贪婪的动态规划》2009 - 徐源盛《对一类动态规划问题的研究》状态压缩2008 - 陈丹琦《基于连通性状态压缩的动态规划问题》状态设计2008 - 刘弈《浅谈信息学中状态的合理设计与应用》树形DP2007 - 陈瑜希:《多角度思考创造性思维——运用树型动态规划解题的思路和方法探析》优化2001 - 毛子青:《动态规划算法的优化技巧》2003 - 项荣璟:《充分利用问题性质——例析动态规划的“个性化”优化》2004 - 朱晨光:《优化,再优化!——从《鹰蛋》一题浅析对动态规划算法的优化》2007 - 杨哲:《凸完全单调性的加强与应用》计算几何立体几何2003 - 陆可昱:《长方体体积并》2008 - 高亦陶《从立体几何问题看降低编程复杂度》计算几何思想2004 - 金恺:《极限法——解决几何最优化问题的捷径》2008 - 程芃祺《计算几何中的二分思想》2008 - 顾研《浅谈随机化思想在几何问题中的应用》圆2007 - 高逸涵:《与圆有关的离散化》半平面交2002 - 李澎煦:《半平面交的算法及其应用》2006 - 朱泽园:《半平面交的新算法及其实用价值》矩阵矩阵2008 - 俞华程《矩阵乘法在信息学中的应用》高斯消元2002 - 何江舟:《用高斯消元法解线性方程组》数学方法数学思想2002 - 何林:《猜想及其应用》2003 - 邵烜程:《数学思想助你一臂之力》数学归纳法2009 - 张昆玮《数学归纳法与解题之道》多项式2002 - 张家琳:《多项式乘法》数形结合2004 - 周源:《浅谈数形结合思想在信息学竞赛中的应用》黄金分割2005 - 杨思雨:《美,无处不在——浅谈“黄金分割”和信息学的联系》其他算法遗传算法2002 - 张宁:《遗传算法的特点及其应用》2005 - 钱自强:《关于遗传算法应用的分析与研究》信息论2003 - 侯启明:《信息论在信息学竞赛中的简单应用》染色与构造2002 - 杨旻旻:《构造法——解题的最短路径》2003 - 方奇:《染色法和构造法在棋盘上的应用》一类问题区间2008 - 周小博《浅谈信息学竞赛中的区间问题》序2005 - 龙凡:《序的应用》系2006 - 汪晔:《信息学中的参考系与坐标系》物理问题2008 - 方戈《浅析信息学竞赛中一类与物理有关的问题》编码与译码2008 - 周梦宇《码之道—浅谈信息学竞赛中的编码与译码问题》对策问题2002 - 骆骥:《浅析解“对策问题”的两种思路》优化算法优化2002 - 孙林春:《让我们做得更好——从解法谈程序优化》2004 - 胡伟栋:《减少冗余与算法优化》2005 - 杨弋:《从<小H的小屋>的解法谈算法的优化》2006 - 贾由:《由图论算法浅析算法优化》程序优化2006 - 周以苏:《论反汇编在时间常数优化中的应用》2009 - 骆可强《论程序底层优化的一些方法与技巧》语言C++2004 - 韩文弢:《论C++语言在信息学竞赛中的应用》策略策略2004 - 李锐喆:《细节——不可忽视的要素》2005 - 朱泽园:《回到起点——一种突破性思维》2006 - 陈启峰:《“约制、放宽”方法在解题中的应用》2006 - 李天翼:《从特殊情况考虑》2007 - 陈雪:《问题中的变与不变》2008 - 肖汉骏《例谈信息学竞赛分析中的“深”与“广”》倍增2005 - 朱晨光:《浅析倍增思想在信息学竞赛中的应用》二分2002 - 李睿:《二分法与统计问题》2002 - 许智磊:《二分,再二分!——从Mobiles(IOI2001)一题看多重二分》2005 - 杨俊:《二分策略在信息学竞赛中的应用》调整2006 - 唐文斌:《“调整”思想在信息学中的应用》随机化2007 - 刘家骅:《浅谈随机化在信息学竞赛中的应用》非完美算法2005 - 胡伟栋:《浅析非完美算法在信息学竞赛中的应用》2008 - 任一恒《非完美算法初探》提交答案题2003 - 雷环中:《结果提交类问题》守恒思想2004 - 何林:《信息学中守恒法的应用》极限法2003 - 王知昆:《浅谈用极大化思想解决最大子矩形问题》贪心2008 - 高逸涵《部分贪心思想在信息学竞赛中的应用》压缩法2005 - 周源:《压去冗余缩得精华——浅谈信息学竞赛中的“压缩法”》逆向思维2005 - 唐文斌:《正难则反——浅谈逆向思维在解题中的应用》穷举2004 - 鬲融:《浅谈特殊穷举思想的应用》目标转换2002 - 戴德承:《退一步海阔天空——“目标转化思想”的若干应用》2004 - 栗师:《转化目标在解题中的应用》类比2006 - 周戈林:《浅谈类比思想》分割与合并2006 - 俞鑫:《棋盘中的棋盘——浅谈棋盘的分割思想》2007 - 杨沐:《浅析信息学中的“分”与“合”》平衡思想2008 - 郑暾《平衡规划——浅析一类平衡思想的应用》。

关于生成树的计数问题

关于生成树的计数问题

关于生成树的计数问题
孔庆新
【期刊名称】《青海民族大学学报》
【年(卷),期】1990(000)002
【摘要】本文论证了对连通图G的生成树的计数问题可归之于计算其块图的生成树的棵数问题,从而提供了计算图G的生成树数目的一种简便的计算方法。

关键词:生成树,割边,制点,块图计算连通图G中生成树的数目,是图论计数问题中一个重要而且有趣的课题。

目前已经有一些计算生成树数目的方法和公式。

本文拟在现有计算公式基础上对若干图类的生成树的计数问题提供简便的计算方法。

【总页数】4页(P59-62)
【作者】孔庆新
【作者单位】
【正文语种】中文
【中图分类】G65,C55
【相关文献】
1.最小生成树与次小生成树上的算法分析与设计 [J], 周玉林
2.多项式剩余类环中幂零元计数问题研究 [J], 田东代
3.一道计数问题的探究 [J], 冯宇斌
4.计数问题“两连发”——浅谈与分组有关的计数问题 [J], 曾庆宝
5.谈构造递推关系式法在计数问题中的应用 [J], 刘海涛
因版权原因,仅展示原文概要,查看原文内容请购买。

算法合集之《生成树的计数及其应用》

算法合集之《生成树的计数及其应用》

算法合集之《生成树的计数及其应用》生成树是图论中的一个重要概念,指的是一个连通图中的一个子图,它包含图中的所有顶点,并且是一个树结构,即没有回路。

生成树可以应用于许多实际问题中,如网络设计、电路设计等。

生成树的计数是指给定一个图,计算其中生成树的个数。

本文将介绍生成树的计数方法及其应用。

生成树个数的计数方法主要有两种:基于度数矩阵的方法和基于邻接矩阵的方法。

基于度数矩阵的方法是通过度数矩阵计算生成树的个数。

度数矩阵是一个n*n的矩阵,其中第i行第j列的元素表示顶点i的度数。

对于一个连通图,它的度数矩阵满足以下性质:矩阵中每个元素都是对称的,对角线上的元素为顶点的度数,非对角线上的元素为-1、生成树的个数可以通过计算度数矩阵的行列式的值来获得。

基于邻接矩阵的方法是通过邻接矩阵计算生成树的个数。

邻接矩阵是一个n*n的矩阵,其中第i行第j列的元素表示顶点i和顶点j之间是否存在一条边。

对于一个连通图,它的邻接矩阵满足以下性质:矩阵中每个元素都是对称的,对角线上的元素为0,非对角线上的元素为1、生成树的个数可以通过计算邻接矩阵的专门构造的拉普拉斯矩阵的行列式的值来获得。

生成树的计数方法在实际应用中有着广泛的应用。

以下是两个典型的应用案例。

1.网络设计:在网络设计中,生成树可以用来表示一个网络的拓扑结构。

生成树的计数可以帮助设计师在设计网络时选择最佳的拓扑结构,以提高网络的可靠性和性能。

例如,在构建一个数据中心的网络时,生成树的计数可以帮助设计师选择恰当的网络拓扑结构,使得数据中心能够快速传输数据,并且故障时能够保持高可用性。

2.电路设计:在电路设计中,生成树可以用来表示电路中的连接关系。

生成树的计数可以帮助设计师评估电路的性能,并且选择合适的电路结构以优化电路的功耗和响应速度。

例如,在设计一个数字电路时,生成树的计数可以帮助设计师选择合适的连接方式,以最小化电路中的延迟和功耗。

综上所述,生成树的计数及其应用是一个复杂而重要的问题。

树及其应用的实验原理

树及其应用的实验原理

树及其应用的实验原理一、树的定义与性质树是一种常用的数据结构,它由节点和连接节点的边组成。

树的定义如下:1.每个树都有一个根节点,根节点没有父节点。

2.每个节点可以有零个或多个子节点。

3.每个非根节点都有且只有一个父节点。

4.在树中,从任意一个节点到达另一个节点的路径是唯一的。

树具有以下性质:1.树的节点可以按层次划分为不同的层级。

2.每个节点的子节点的顺序是确定的。

3.每个节点可以有任意个子节点。

二、树的表示方法树的表示方法有多种,常用的包括以下几种:1.链表实现:每个节点包含一个键和一个指向左子树和右子树的指针。

此方法的优点是方便插入和删除节点,但访问节点的时间复杂度较高。

2.数组实现:树可以被转换为一个大小为n的数组,其中n是树中节点的数量。

根节点的索引为1,左子节点的索引为2i,右子节点的索引为2i+1。

此方法的优点是访问节点的时间复杂度低,但插入和删除节点的操作较复杂。

3.哈希表实现:使用哈希表来表示树的结构,每个节点的键值对应一个哈希表的键值。

此方法的优点是查找、插入和删除操作的时间复杂度都为O(1),但空间复杂度较高。

三、树的遍历树的遍历是指按照一定的顺序访问树中的节点。

常用的树的遍历方法有三种:1.前序遍历:先访问根节点,然后按照从左到右的顺序访问左子树和右子树。

2.中序遍历:先按照从左到右的顺序访问左子树,然后访问根节点,最后访问右子树。

3.后序遍历:先按照从左到右的顺序访问左子树和右子树,然后访问根节点。

树的遍历可以使用递归或者迭代的方式来实现,其中递归是一种简单直观的方法。

四、树的应用树作为一种常见的数据结构,在计算机科学和相关领域中有广泛的应用,以下是树的一些应用场景:1.文件系统:文件系统通常使用树的结构来组织文件和目录。

每个目录是一个树节点,文件是树的叶子节点。

2.数据库索引:数据库使用树的结构来建立索引,以提高查询和插入数据的效率。

常用的索引结构包括B树和B+树。

3.编译器:编译器使用语法树来解析源代码,并生成中间代码或目标代码。

离散数学及其应用课件:树

离散数学及其应用课件:树


图7-13 二叉树

例7.11 计算机中存储的文件目录,目录可以包含子目录
和文件。图7-14用多叉树表示一个文件系统。C表示根目录,
可以表示成根树,内点表示子目录,树叶表示文件或空目录。

图7-14 多叉树表示的文件系统

2.二叉树的遍历
定义7.10 对于一棵根树的每个结点都访问一次且仅一次

图7-16 给定单词二叉搜索树

7.2.3 最优二叉树及其应用
1.哈夫曼树

例7.14 计算图7-17所示带权二叉树的权值。
图7-17-带权二叉树

7.2.1 根树的概念
定义7.6 一个有向图D,如果略去有向边的方向所得的无
向图为一棵无向树,则称D为有向树。换句话说,若有向图的
基图是无向树,那么这个有向图为有向树。入度为0的顶点称
为树根(Root),入度为1且出度为0的顶点称为树叶;入度为1且
出度大于0的顶点称为内点。内点和树根统称为分支点。
有一种特殊结构的有向树叫根树。
图7-2 无向图


例7.2 设T 是一棵树,它有三个2度结点,两个3度结点,一
个4度结点,求T 的树叶数。

7.1.2 生成树的概念与性质
1.生成树的概念
定义7.2 设G=<V,E>是无向连通图,T 是G 的生成子图,并
且T 是树,则称T 是G的生成树(SpanningTree),记为TG 。

定理7.1 设G=<V,E>是n 阶无向图,G 中有m 条边,则下面
关于G 是树的命题是等价的:
(1)G 连通而不含回路;
(2)G 的每对顶点之间具有唯一的一条路径;

2007年安徽青少年科技创新大赛成绩

2007年安徽青少年科技创新大赛成绩

2007年安徽省青少年科技创新大赛成绩
各市青少年科技活动领导小组(科协、教育局):2007年安徽省青少年科技创新大赛评选及展示活动于2007年4月6日至4月8日在合肥市举行,经各市选拔上报,共有141项优秀作品参加比赛,经过评审委员会的认真评选,共评选出优秀项目一等奖13项;二等奖25项;三等奖53项;优秀科技教师2名;优秀科技活动5项;优秀组织奖5个单位。

现予以公布。

附:获奖名单安徽省青少年科技活动领导小组2007年5月8日
优秀科技活动:
1、治理城市“牛皮癣”美化净化环境实践活动
安徽省蚌埠第一实验小学
2、“绿色行动”大型环保活动
蚌埠市禹会区教育局
3、测量合肥的经纬度和正午太阳高度
合肥市第四十六中学
4、校园口香糖残胶污染调查
马鞍山市七中
5、魅力铜都、雕塑如歌—铜陵铜雕塑调查综合实践活动实施方案铜陵市实验小学
优秀科技教师:
1、张店才蚌埠市固镇县湖沟中学
2、丁玉清安徽省无为中学
优秀组织奖:
1、蚌埠市科协
2、合肥市庐阳区教育局
3、芜湖市镜湖区青少年科技活动中心
4、马鞍山市第七中学
5、铜陵市一中。

树的诞生故事(数学)

树的诞生故事(数学)

树的诞生故事(数学)【最新版4篇】目录(篇1)1.引言:介绍树的概念及其在数学中的应用2.树的基本结构:节点、边、叶子节点、度、生成树等3.树的种类:满二叉树、完全二叉树、平衡二叉树(AVL 树)和二叉搜索树4.树的遍历:前序遍历、中序遍历和后序遍历5.树的应用:图论、数据结构和算法6.结论:总结树的重要性和在数学领域的发展正文(篇1)树的诞生故事 (数学)树的概念在生活中非常常见,它既是生物学中的基本结构,也是数学中的一个重要研究对象。

在数学领域,树被广泛应用于图论、数据结构和算法等方面,为我们理解和解决许多实际问题提供了有力的工具。

接下来,我们将探讨树的诞生故事,了解其在数学中的基本结构、种类和应用。

首先,让我们来了解一下树的基本结构。

在数学中,树是由节点(vertex)和边(edge)组成的一种非线性数据结构。

树的节点表示元素,边表示元素之间的关系。

树中还存在叶子节点(leaf node),即没有子节点的节点。

度(degree)是树中节点的子节点数量,根节点的度为 0,而叶子节点的度为 1。

生成树(spanning tree)是指一个树覆盖一个图的所有节点,且保持图的连通性。

接下来,我们来探讨树的种类。

满二叉树是一种特殊的完全二叉树,它的每一层都充满了节点,且最后一层可能不完全填充。

完全二叉树是一种特殊的平衡二叉树(AVL 树),它的每一层都充满了节点,且最后一层可能不完全填充。

平衡二叉树是一种保持左右子树高度差不超过 1 的二叉树,它的调整操作使其保持平衡。

二叉搜索树是一种特殊的平衡二叉树,它的左子树中的所有节点的值都小于根节点的值,右子树中的所有节点的值都大于根节点的值。

在树的遍历方面,有前序遍历、中序遍历和后序遍历三种方式。

前序遍历是指先访问根节点,然后遍历左子树,最后遍历右子树。

中序遍历是指先遍历左子树,然后访问根节点,最后遍历右子树。

后序遍历是指先遍历左子树,然后遍历右子树,最后访问根节点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

生成树的计数及其应用安徽周冬目录生成树的计数及其应用 (1)目录 (1)摘要 (2)关键字 (2)问题的提出 (2)[例一]高速公路(SPOJ p104 Highways) (2)[分析] (2)预备知识 (2)排列 (3)行列式 (4)新的方法 (7)介绍 (7)证明 (9)理解 (12)具体应用 (12)[例二]员工组织(UVA p10766 Organising the Organisation) (13)[分析] (13)[例三]国王的烦恼(原创) (13)[分析] (14)总结 (14)参考文献 (14)摘要在信息学竞赛中,有关生成树的最优化问题如最小生成树等是我们经常遇到的,而对生成树的计数及其相关问题则少有涉及。

事实上,生成树的计数是十分有意义的,在许多方面都有着广泛的应用。

本文从一道信息学竞赛中出现的例题谈起,首先介绍了一种指数级的动态规划算法,然后介绍了行列式的基本概念、性质,并在此基础上引入Matrix-Tree定理,同时通过与一道数学问题的对比,揭示了该定理所包含的数学思想。

最后通过几道例题介绍了生成树的计数在信息学竞赛中的应用,并进行总结。

关键字生成树的计数Matrix-Tree定理问题的提出[例一]高速公路(SPOJ p104 Highways)一个有n座城市的组成国家,城市1至n编号,其中一些城市之间可以修建高速公路。

现在,需要有选择的修建一些高速公路,从而组成一个交通网络。

你的任务是计算有多少种方案,使得任意两座城市之间恰好只有一条路径?数据规模:1≤n≤12。

[分析]我们可以将问题转化到成图论模型。

因为任意两点之间恰好只有一条路径,所以我们知道最后得到的是原图的一颗生成树。

因此,我们的问题就变成了,给定一个无向图G,求它生成树的个数t(G)。

这应该怎么做呢?经过分析,我们可以得到一个时间复杂度为O(3n*n2)的动态规划算法,因为原题的规模较小,可以满足要求。

但是,当n再大一些就不行了,有没有更优秀的算法呢?答案是肯定的。

在介绍算法之前,首先让我们来学习一些基本的预备知识。

预备知识下面,我们介绍一种重要的代数工具——行列式。

为了定义行列式,我们首先来看一下排列的概念。

排列定义1 由1,2,…,n 组成的一个有序数组i 1i 2…i n 称为1,2,…,n 的一个排列。

由排列的定义可知,i 1,i 2,…,i n 表示了n 个不同的自然数,同时i 1,i 2,…,i n 中的每个自然数都是集合S n ={1,2,…,n }中的一个元素,换句话说,n i n i i →→→,,, 2121定义了集合S n 到自身上的一个一一对应。

这个一一对应可以用符号⎪⎪⎭⎫⎝⎛n i i i n 2121记之,称为置换,而上述一一对应可以改写为n j n j j i j i j i j →→→,,, 212其中j 1j 2…j n 是1,2,…,n 的一个排列。

所以这个一一对应也可以用符号⎪⎪⎭⎫ ⎝⎛n j j j n i i i j j j2121记之,因此对1,2,…,n 的任一排列j 1j 2…j n ,可定义⎪⎪⎭⎫⎝⎛=⎪⎪⎭⎫ ⎝⎛n j j j n n i i i j j j i i i n 21212121任取一个排列i 1i 2…i n ,将其中两个相邻的自然数i j -1,i j 对换一下,便造出一个新的排列i 1i 2…i j -2i j i j -1 i j +1…i n ,称为原来排列的对换排列,这样一种步骤成为对换。

显然,对于任何一个排列经过若干次对换后都可以变成标准排列12…n 。

不过,不管经过什么途径作对换,在给定排列i 1i 2…i n 后,关于对换的次数有下列重要定理。

定理1 将任意一个排列i 1i 2…i n 通过对换变成标准排列12…n ,所需的对换次数的奇偶性与对换方式无关。

利用这个定理,我们引入定义2 一个排列i 1i 2…i n 称为偶(奇)排列,如果有一种方式,经过偶(奇)数次对换后,可以将排列i 1i 2…i n 变为标准排列12…n 。

设排列i 1i 2…i n 经过t 次对换后变为标准排列12…n ,则数值(-1)t 和对换方式无关。

将它改写成ni i i n2112δ,即()⎩⎨⎧-=-=的奇排列时。

,,,是,当的偶排列时;,,,是,当n i i i n i i i i i i nn n tn 211211112212121δn 个确定自然数1,2,…,n 的排列,可以看作是集合S n ={1,2,…,n }到自身上的一个一一对应。

将这个概念推广,任取n 个元素的集合S ={a 1,a 2,…,a n }。

对于集合S 到自身上的一一对应n i n i i a a a a a a →→→,,, 2121n i i i a a a 21称为n a a a ,,, 21的一个排列。

容易看出,n i i i a a a 21是n a a a ,,, 21的排列的充要条件是i 1i 2…i n 是1,2,…,n 的排列。

同样,排列n i i i a a a 21变为标准排列n a a a 21的对换总次数的奇偶性和对换方式无关,因此引入符号()⎩⎨⎧-=-=的奇排列时。

是,当的偶排列时;是,当n i i i n i i i ti i i n a a a a a a a a a a a a a a a a a a n n n,,,1,,,11212121212121 δ其中t 是某一种将n i i i a a a 21变为n a a a 21的对换方式的对换总次数。

下面我们介绍行列式。

行列式一阶行列式是一个变量a 11的函数det(a 11)= a 11,也可以改写成为()∑⎪⎪⎭⎫ ⎝⎛==1111111111det a a a δ二阶行列式是四个变量a 11,a 12,a 21,a 22的函数1212221122211211det a a a a a aa a -=⎪⎪⎭⎫⎝⎛,也可以改写成∑⎪⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛21211221212221121112det i i i i a a i i a a a a δ 三阶行列式是九个变量a ij (i ,j =1,2,3)的函数322311332112312213322113312312332211333231232221131211det a a a a a a a a a a a a a a a a a a a a a a a a a a a ---++=⎪⎪⎪⎭⎫ ⎝⎛,同样可以改写成为321321321123321333231232221131211123det i i i i i i a a a i i i a a a a a a a a a ∑⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛δ通过观察一、二、三阶行列式的定义,我们得出了n 阶行列式的一般定义。

定义3 n 阶矩阵A 的行列式是一实数,记作det A ,它定义为n n ni i i i i i n n a a a i i i nA 212121122112det ∑⎪⎪⎭⎫ ⎝⎛=δ行列式有下列几种常用的符号:A a a a a a a a a A nnn n nn n n ==⎪⎪⎪⎭⎫ ⎝⎛= 11111111det det由行列式的定义可知,利用定义直接计算行列式是很困难的,只有在阶数低时才可以直接用定义计算。

为了能够进行计算,需要先导出行列式的若干基本性质,在通过这些性质,将复杂的行列式计算化为简单的行列式计算,也可以将高阶行列式的计算化为低阶行列式的计算。

性质1 设A 是n 阶矩阵,则det A T =det A 。

这个定理的重要意义在于,它告诉我们行列式的行和列的地位是平等的。

确切地说,每个关于行的性质,对列必然成立;反之亦然。

性质2 行列式的任两行(或两列)互换,行列式变号。

推论 行列式的某两行(或两列)相同时,行列式的值为0。

性质3 用实数λ乘以一行(或列)后,所得到的行列式等于原来的行列式乘以λ。

推论 行列式有两行(或两列)成比例,则该行列式的值为零。

特别的,当行列式有一行(或列)全为零时,行列式的值为零。

性质4nnn n j j jn j nj j n nnn n j j jn j nj j n nnn n j j jn jn j j n j j n a a a a b b a a a a a a a a a a a a a a a a a a b a b a a a a a1,11,11,11,11111,11,11,11,11111,11,111,11,1111++--++--++--+=++ 对列也有同样性质。

推论 将行列式的任意行(或一列)乘以实数λ,再相应地加到另一行(或另一列)上去,则行列式的值不变。

例如,当j ≠1时nnn n n nnn n jnn j a a a a a a a a a a a a a a122111112211111λλ=++下面我们介绍一种计算行列式的方法。

首先,不难证明nnn nnnn nnnnn n n a a a a a a a a a a a a a a a a a a a12221122221121121222211100== 今取行列式nnn nb b b b B1111det = 我们可以将B 化为上三角形式,记为'B ,同时记录行交换次数S 。

根据定理11,易知:()nnnnSb b b b b b B B '0''0''''det 1det 22211211=-=再利用刚才的结论,得()∏=-=ni iiSb B 1'1det 。

对于矩阵A ,任取2p 个自然数1≤i 1<i 2<…<i p <=n ,1≤j 1<j 2<…<j p <=n在矩阵A 中取出第i 1,i 2,…,i p 行第j 1,j 2,…,j p 列的交叉元素,按原来的次序排成p 阶矩阵。

这个矩阵的行列式称为矩阵A 的p 阶子式,记作pp p pj i i j i i p p a a a a j j j i i i A 11212111=⎪⎪⎭⎫⎝⎛根据这个定义,下面我们再介绍中一个非常重要的公式——Binet -Cauchy 公式。

定理8(Binet -Cauchy 公式) 设A 和B 各为p *q 及q *p 矩阵,则有⎪⎪⎪⎩⎪⎪⎪⎨⎧<⎪⎪⎭⎫⎝⎛⎪⎪⎭⎫ ⎝⎛=>=∑<=<<<=时。

当时;当时;当q p p j j j B j j j p A q p BA q p AB q j j p p p1121212121det det ,0det特别的,det AA T =(det A )2。

相关文档
最新文档