无标号计数
1、二叉树
设OGF为H(x)=∑i=0∞hixi。
任意一棵大小为n(n≥1)二叉树去掉根,可以得到两棵大小之和为n−1的二叉树。因此hn=∑i=0n−1hihn−1−i(n≥1)。
根据递推关系可列出方程xH(x)2−H(x)+1=0。
解得H(x)=2x1−1−4x。
求得hn=n+1(n2n)。
*预备知识:Euler变换
Euler变换在无标号计数中的组合意义相当于有标号计数中的exp,即阶数之和为n的结构的任意组合。
设F(x)=∑i=0∞fixi。
定义E(F(x))=∏i=0∞(1−xi)fi1。
上式可化为E(F(x))=exp(∑i=1∞iF(xi))。
2、有根树
设OGF为F(x)=∑i=0∞fixi。
任意一棵大小为n(n≥1)的有根树去掉根,可以得到若干棵大小之和为n−1的有根树。因此F(x)=xE(F(x))。
2*、无根树
设有根树的OGF为F(x)=∑i=0∞fixi,无根树的OGF为H(x)=∑i=0∞hixi。
要统计无根树,只需统计以重心为根的有根树。根据重心的定义一个点是重心当且仅当它的每棵子树大小不超过[2n]。
因此,一棵树有2个重心当且仅当重心最大子树的大小恰好是2n,否则只有1个重心。当树有两个重心时,也要把重心重复计算的情况给减去。
因此,hn={fn−∑k=2n+1n−1fkfn−kfn−∑k=2n+1n−1fkfn−k−(2f2n)n为奇数n为偶数。
即H(x)=F(x)−21F(x)2+F(x2)。
有标号计数
1、无根树
由Prufer序列和无根树的一一对应关系,得答案nn−2。
1*、有根树
答案nn−1。
2、无向连通图
设n阶有标号无向连通图有fn种。
设F(x)=∑i=0∞i!fixi。
则expF(x)=∑i=0∞i!2(2i)xi。
即F(x)=ln∑i=0∞i!2(2i)xi
3、点双连通图
设无向连通图的EGF为F(x),有根无向连通图的EGF为D(x),则[xn]F(x)=n[xn]D(x)。
设点双连通图的EGF为B(x)。
任意一个大小为n的有根无向连通图去掉根都可以得到若干个大小之和为n−1的连通块。对每个连通块,考虑根所在的点双连通分量,每个点作为根,都可以向外连出一个有根无向连通图。
因此一个连通块的EGF为∑i=1∞i!bi+1Di(x)=B′(D(x))。
因此D(x)=expB′(D(x))。
4、边双连通图
设有根无向连通图的EGF为D(x),边双连通图的EGF为B(x)。
考虑根所在的边双连通分量,每个点都可以向外连接若干个有根无向连通图的根。
因此D(x)=∑i=1∞i!bixiexpiD(x)=B(xexpD(x))
5、仙人掌
设EGF为F(x)=∑i=0∞i!fixi。
F=xexp(F+21∑i=2∞Fi)=xexp2(1−F)F(2−F)
6、DAG
设EGF为F(x)=∑i=0∞i!fixi。
fn=∑i=1n(−1)i−1(in)2i(n−i)fn−i。
7、欧拉图
设EGF为F(x)=∑i=0∞i!fixi。每个点度数均为偶数的图的EGF为G(x)=∑i=0∞i!gixi。
对于任意一个n−1阶的图,都可以新加一个点n,与图中所有度数为奇数的点连边。
因此gn=2(2n−1)。
而G(x)=expF(x)。
因此F(x)=lnG(x)。