文章分类 -  生成树

POJ1639:Picnic Planning
摘要:——problem:度限制生成树——solution:Kruskal算法框架:1.先求出最小m度限制生成树;2.由最小m度限制生成树得到最小m+1度限制生成树;3.当dT(v0)=k时停止(即当V0的度为k的时候停止);第一步:求解最小m度限制生成树:原图中去掉和V0相连的所有边,得到m个连通分量,而这m个连通分量必须通过v0来连接,所以,在图G的所有生成树中dT(v0)≥m。也就是说,当k<m时,问题无解。对每个连通分量求一次最小生成树,对于每个连通分量V’,求一点v1,v1∈V',且ω(v0,v1)=min{ω(v0,v')|v'∈V'},则该连通分量 阅读全文
posted @ 2011-03-26 21:43 风也轻云也淡 阅读(291) 评论(0) 推荐(0)
HDU3070:Counting spanning trees
摘要:——problem:有度限制的生成树个数——solution:Cayley公式,Prüfer编码,递推Cayley公式是:一个完全图K_n有n^(n-2)棵生成树,换句话说n个节点的带标号的无根树有n^(n-2)个。Cayley公式的一个非常简单的证明,证明依赖于Prüfer编码,它是对带标号无根树的一种编码方式:给定一棵带标号的无根树,找出编号最小的叶子节点,写下与它相邻的节点的编号,然后删掉这个叶子节点。反复执行这个操作直到只剩两个节点为止。由于节点数n>2的树总存在叶子节点,因此一棵n个节点的无根树唯一地对应了一个长度为n-2的数列,数列中的每个数都在1到n的范 阅读全文
posted @ 2011-03-26 21:40 风也轻云也淡 阅读(486) 评论(0) 推荐(0)
【JSOI2008】最小生成树计数
摘要:【JSOI2008】最小生成树计数Description 现在给出了一个简单无向加权图。你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树。(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的)。由于不同的最小生成树可能很多,所以你只需要输出方案数对31011的模就可以了。Input 第一行包含两个数,n和m,其中1<=n<=100; 1<=m<=1000; 表示该无向图的节点数和边数。每个节点用1~n的整数编号。 接下来的m行,每行包含两个整数:a, b, c,表示节点a, b之间的边的权值为c,其中1<=c<=1 阅读全文
posted @ 2011-03-10 15:55 风也轻云也淡 阅读(1139) 评论(0) 推荐(0)