BZOJ4001: [TJOI2015]概率论(OGF)

这篇博客介绍了如何求解n个节点二叉树的叶子结点期望数量。通过建立递推关系,利用卡特兰数的概念,构建生成函数,并解方程得到答案。最终得出的公式为叶子节点的期望数量与卡特兰数的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传送门
题意:
求n个节点二叉树的叶子结点期望数量。

题解:
C(n) 为卡特兰数。
首先 n 个节点的二叉树个数为C(n)
f(n) n 个节点的二叉树的叶子结点个数和。
ans=f(n)C(n)

又有 f(n)=2i=0nf(i)C(ni1)(n2)
f(1)=1 (因为此时根节点为叶子)。

构造一般形生成函数 F(x),G(x) 分别表示 f,C 的生成函数。

根据递推关系,有:
F(x)=2x(F(x)G(x))+x,G(x)=xG2(x)+1

解方程得:

G(x)=114x2x

注意此时舍去另一个根的原因是因为另一个函数在 0 处不收敛。

那么解得

F(n)=x14x

用广义二项式定理展开,一波化简可得 F(n) 的第 xn+1 的系数(这里仅仅是为了计算方便才取的 n+1 ,直接减1就好了)为 2n!n!n!

卡特兰数通项公式: C(n)=2n!n!(n+1)!

化一化简即可。

最后得到公式 xn+1=(n+2)(n+1)(4n+2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值