BZOJ-4001. [TJOI2015]概率论
题目要求出一个含有 $n$ 个节点的有序二叉树的叶子节点的期望个数,$n \leq 10^9$,要求精确到 $1.0 \times 10^{-9}$
例如一个含有 3 个节点的二叉树,一共有 5 种情况,期望的叶子节点个数是 $\frac{6}{5}$
首先可以用 $H_n$ 表示有 $n$ 个节点的二叉树的个数,空树没有节点,因此 $H_0=1$
考虑一棵有 $n$ 个节点的二叉树,由于左右子树都是二叉树,可以枚举左右子树节点个数,因此可以得到递推式
\[H_n = \sum_{i=0}^{n-1}H_i \cdot H_{n-i-1}\]这也是著名的卡特兰数,它的通项是 $\frac{1}{n+1}C_{2n}^n$,等等会说怎么解
现在用 $f_i$ 表示有 $n$ 个节点的二叉树的叶子节点个数,这样最后期望就会是 $\frac{f_i}{H_i}$
首先可以知道 $f_0=0, f_1=1$,还是枚举子树大小,$n$ 个节点的二叉树,左子树有 $i$ 个节点,右子树一共有 $H_{n-i-1}$ 种方案,这种情况答案就会增加 $f_i\cdot H_{n-i-1}$,然后左右子树是对称的,最后还有乘 $2$,因此可以得到 $f_n$ 的递推式
\[f_n = 2\sum_{i=0}^{n-1} f_i \cdot H_{n-i-1}\]现在设 $H(x)$ 是 $H_n$ 的生成函数,$F(x)$ 是 $f_n$ 的生成函数,观察到两个递推式基本相同,而且都是一个卷积的形式,卷积刚好对应生成函数的乘法,这样可以知道
\[\begin{eqnarray*} H(x) &=& xH^2(x)+1 \\ F(x) &=& 2xF(x)H(x)+x \end{eqnarray*}\]最后可以解出 $H(x)$ 和 $F(x)$
\[\begin{eqnarray*} H(x) &=& \frac{1-\sqrt{1-4x}}{2x}\\ F(x) &=& \frac{x}{\sqrt{1-4x}} \end{eqnarray*}\]注意到
\[\int \frac{F(x)}{x}dx = -\frac{1}{2}\sqrt{1-4x}+C = xH(x)\]这就说明只要求出 $H(x)$,然后就很容易可以求出 $F(x)$,现在考虑如何求 $H(x)$,具体看 Catalan 数列及其应用
最后得出 $H_n=\frac{1}{n+1}C_{2n}^n$
\[\begin{eqnarray*} xH(x) &=& \sum_{i=1}^\infty H_{i-1}x^i \\ \frac{d}{dx}xH(x) &=& \frac{1}{\sqrt{1-4 x}}\\ \sum_{i=0}^\infty (i+1)H_ix^i &=& \frac{F(x)}{x}\\ F(x)&=& \sum_{i=1}^\infty iH_{i-1}x^i \\ \end{eqnarray*}\]因此 $f_n=nH_{n-1}$,答案就是 $\frac{nH_{n-1}}{H_n}=\frac{n(n+1)}{2(2n-1)}$
-
2015-05-14 17:02:19zyf (#1)请问解H(x)不是个二次方程吗 为什么不能取另一个解?
-
2015-05-14 17:13:54miskcoo (#2) reply to你把 $\sqrt{1-4x}$ 展开后它的每一项值都是负数,在实际情况中 Catalan 数要是正数所以取了这个解,生成函数取哪个解是根据实际情况确定的 其实还有一种方法就是你可以把 $x = 1$ 带入试试看
-
2015-05-19 22:31:31qscqesze (#3)Orz!
-
2015-06-11 17:52:19iwtwiioi (#4)请问一下,$f(n) = 2\sum_{i=0}^{n-1} f(i)h(n-1-i)$,$F(x)$是$f(i)$的生成函数的话,不应该是$F(x) = 2xF(x)H(x)$吗(虽然这样就无解了),不明白为啥泥会加x...
-
2015-06-11 19:05:01miskcoo (#5) reply to因为递推式的卷积范围是 $0 \rightarrow n - 1$,$2F(x)H(x)$ 之后第 $n$ 项对应的是 $0 \rightarrow n$ 所以乘 $x$ 右移,然后这样 $x^1$ 这一项就消失了要补回来 或者换一个方式直接想,$2xH(x)F(x)$ 代表“根+左子树+右子树“组合起来的东西,但是在这里是认为根不是叶子节点,所以最后要补上根直接是叶子的情况
-
2015-06-12 07:38:32iwtwiioi (#6) reply to谢了...我没想到那个第一项消失了.....
-
2016-08-21 13:08:01[bzoj 4001][TJOI2015] 概率论 | Beyond the firmament (#7)[…] 具体证明戳这里:我不是link […]
-
2016-09-22 15:29:29【bzoj4001】【TJOI2015】概率论 – 杨济源の博客 (#8)[…] 证明:http://blog.miskcoo.com/2015/04/bzoj-4001#comment-2070 […]
-
2018-03-26 21:09:00BOZJ4001: [TJOI2015]概率论 – SummerSky (#9)[…] 题解 […]
-
2018-07-30 19:47:59Grary (#10) reply to请问$1-4x$是怎么展开的呢?
-
2018-07-30 19:49:00Grary (#11) reply to我写错了, 应该是$\sqrt{1-4x}$.
-
2018-07-30 19:52:38miskcoo (#12) reply tohttps://en.wikipedia.org/wiki/Binomial_theorem#Newton's_generalized_binomial_theorem
-
2018-11-01 07:20:49Lydia Yuan (#13)关于卡塔兰数,我找了一个不错的资料,感兴趣的同学可以看一看惹~ http://www-math.mit.edu/~rstan/transparencies/china.pdf