2011/2/8
生成树计数
题目我就不放了。
栋栋十分xe的把大家往行列式上面引,但是是不能用行列式做的。观察这道题的特点,k特别小,因此这肯定是切入点。所以用状态f[I,j]表示前i个,联通状态为j(为长度为k的最小表示)的方案数。依次处理从左到右的点,往状态右边加入一个点,并往左边的点连边,删去原来最左边的点。可行的连边是使得原来最左边的元素的联通块有延续,注意这个时候要对状态重新最小表示法,重新标号,因为关心的只是连通性。而不是各自的标号。
初始的状态的方案数的处理:每个联通块都是独立不互相干扰的,那么对于每种标号的联通块,因为待选边集是完全图,用n个点的完全图的生成树个数为n^(n-2)来算。
由于我一开始有问题,所以只压了k-1长度的位。中间有一个把k加一的东西,大家注意。有点丑。
本文介绍了一种解决特定生成树计数问题的算法。该算法利用状态压缩DP技术,通过跟踪节点之间的连接状态来计算可能的生成树数量。特别关注小参数k,通过状态f[I,j]表示前i个节点的联通状态为j的方案数。

703

被折叠的 条评论
为什么被折叠?



