生成函数做法

前置:卡特兰数

记\(C_n\)为\(n\)个节点的二叉树的个数,\(C_0=1\),对于\(n \geq 1\),取一个根节点,枚举其左子树大小,有

\[C_n=\sum_{i=0}^{n-1}C_iC_{n-1-i}
\]

则卡特兰数的生成函数\(C\)满足

\[C(x)=C_0+xC^2(x)=1+xC^2(x),C_0=C(0)=1
\]

解方程得

\[C(x)=\frac{1-\sqrt{1-4x}}{2x}
\]

上面为什么不取正呢?考虑x=0,取负上下为等阶无穷小,值为1;取正上面是2下面是0,无意义。所以只能取负。

\[C(x)=\frac{1}{2x}\left( 1- \sum_{n=0}^{\infty}\binom{\frac{1}{2}}{n} (-4x)^n \right)=-\frac{1}{2}\sum_{n=0}^{\infty} \binom{\frac{1}{2}}{n+1}(-4)^{n+1}x^n
\]

\[C_n=-\frac{1}{2}\binom{\frac{1}{2}}{n+1}(-4)^{n+1}=2\frac{\prod_{i=0}^{n}(\frac{1}{2}-i)}{(n+1)!}(-1)^n 2^{2n}
\]

\[=\frac{(2n-1)!!}{(n+1)!}2^n=\frac{(2n)!}{n!n!(n+1)}=\frac{1}{n+1}\binom{2n}{n}
\]

分析

记\(h_n\)表示这\(C_n\)个二叉树的叶子数目之和,有\(h_0=0,h_1=1\)

对于\(n\geq 2\),枚举根的左儿子大小并由对称性,有

\[h_n=2\sum_{i=0}^{n-1}h_iC_{n-1-i}
\]

\[h(x)-h_0-h_1x=2xh(x)C(x)
\]

\[h(x)=2xh(x)C(x)+x
\]

根据\(C(x)=\frac{1-\sqrt{1-4x}}{2x}\),解得

\[h(x)=\frac{x}{\sqrt{1-4x}}
\]

\[h(x)=x\sum_{k=0}^{\infty}\binom{-\frac{1}{2}}{k}(-4x)^k
\]

\[h_n=\binom{-\frac{1}{2}}{n-1}(-1)^{n-1}2^{2(n-1)}=\frac{\prod_{i=0}^{n-2}(-\frac{1}{2}-i)}{(n-1)!}(-1)^{n-1}2^{2(n-1)}
\]

\[=\frac{(2n-3)!!}{(n-1)!}2^{n-1}=\frac{(2n-2)!}{(n-1)!(n-1)!}=\binom{2n-2}{n-1}
\]

那么期望值为

\[\frac{h_n}{C_n}=\frac{n(n+1)}{2(2n-1)}
\]

组合做法

对于一个叶子,可以用一个pair来描述:去掉该叶子后的二叉树,在该二叉树的哪个位置添加该叶子。

每个pair也对应了唯一的叶子。所以考虑计数这个pair

去掉该叶子的二叉树有N − 1个点,数目为CatalanN−1

对于一个N − 1个点的二叉树,考虑有多少个空位可以放。总共有2 × (N − 1)个空位,但是有N − 2个点已经占据了一个空位,所以有N个空位可以添加叶子

两个方案数相乘,再除以CatalanN,化简一下发现答案是 \(\frac{n(n+1)}{4n-2}\)。

LG3978 【[TJOI2015]概率论】的更多相关文章

  1. 4001: [TJOI2015]概率论

    4001: [TJOI2015]概率论 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 262  Solved: 108[Submit][Status] ...

  2. 【BZOJ4001】[TJOI2015]概率论(生成函数)

    [BZOJ4001][TJOI2015]概率论(生成函数) 题面 BZOJ 洛谷 题解 这题好仙啊.... 设\(g_n\)表示\(n\)个点的二叉树个数,\(f_n\)表示\(n\)个点的二叉树的叶 ...

  3. [TJOI2015]概率论

    [TJOI2015]概率论 史上最短黑题 看起来一脸懵逼,没有取模,1e-9 根据期望定义,发现 分母是一个卡特兰数,,,,不能直接算 所以考虑怎么消掉一些东西 gn表示n个点的叶子个数和,fn表示n ...

  4. bzoj4001: [TJOI2015]概率论

    题目链接 bzoj4001: [TJOI2015]概率论 题解 生成函数+求导 设\(g(n)\)表示有\(n\)个节点的二叉树的个数,\(g(0) = 1\) 设\(f(x)\)表示\(n\)个节点 ...

  5. P3978 [TJOI2015]概率论

    \(\color{#0066ff}{ 题目描述 }\) 为了提高智商,ZJY开始学习概率论.有一天,她想到了这样一个问题:对于一棵随机生成的n个结点的有根二叉树(所有互相不同构的形态等概率出现),它的 ...

  6. 【BZOJ4001】【Luogu P3978】 [TJOI2015]概率论

    题目描述: Description: Input 输入一个正整数N,代表有根树的结点数 Output 输出这棵树期望的叶子节点数.要求误差小于1e-9 Sample Input 1 Sample Ou ...

  7. 【BZOJ】4001: [TJOI2015]概率论

    题意 求节点数为\(n\)的有根树期望的叶子结点数.(\(n \le 10^9\)) 分析 神题就打表找规律.. 题解 方案数就是卡特兰数,$h_0=1, h_n = \sum_{i=0}^{n-1} ...

  8. luogu3978 [TJOI2015]概率论

    题目链接:洛谷 题目大意:求所有$n$个点的有根二叉树的叶子节点数总和/$n$个点的有根二叉树的个数. 数据范围:$n\leq 10^9$ 生成函数神题!!!!(我只是来水博客的) 首先$n$个点的有 ...

  9. BZOJ4001[TJOI2015]概率论——卡特兰数

    题目描述 输入 输入一个正整数N,代表有根树的结点数 输出 输出这棵树期望的叶子节点数.要求误差小于1e-9 样例输入 1 样例输出 1.000000000 提示 1<=N<=10^9 设 ...

随机推荐

  1. prppppne2

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:/ ...

  2. 【原创】paintEvent()函数显示文本

    [代码] void MainWindow::paintEvent(QPaintEvent*) { QPainter p(this); QRect r; p.setPen(Qt::red); p.dra ...

  3. 传统应用迁移到kubernetes(Hadoop YARN)

    spark-on-yarn-with-kubernetes 该例子仅用来说明具体的步骤划分和复杂性,在生产环境应用还有待验证,请谨慎使用. 过程中可能用到的概念和术语初步整理如下: 整个迁移过程分为如 ...

  4. MyEclipse使用教程:在Web项目中使用Web片段

    MyEclipse 在线订购年终抄底促销!火爆开抢>> MyEclipse最新版下载 本教程向用户展示了使用关联的Web项目创建Web片段项目的机制.用户还可以获得要检查的示例项目.在本教 ...

  5. 使用keytool生成公钥、私钥、证书并且读取出来,使用私钥签名jar并验证(转)

    参考链接:http://happyqing.iteye.com/blog/2139504 :https://blog.csdn.net/arjelarxfc/article/details/52461 ...

  6. pssac plot

    for multi-waveforms with different colors: R-Xmin/-Xmax/Ymin/Ymax -Ba/b, a: x delta; b:y delta -MYma ...

  7. synchronized 和 ReentrantLock 区别

    synchronized 使用: 1:当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁.结果,其它线程对该object对象所有同步代 ...

  8. L253 Work and Pleasure

    To be really happy and really safe, one ought to have at least two or three hobbies, and they must a ...

  9. TCCSuperPlayerView让Delphi支持app视频播放!

    今天ChinaCock发布了新版,完美支持视频播放!新版本中,发布了新的控件TCCSuperPlayerView,以支持视频播放. 这是一个可视控件,拖放到Form上,调整好大小与位置,就可以调用他的 ...

  10. 通过日志关键字检测判断obb程序是否工作正常

    C118+Osmocom-bb 多机 gsm sniff环境,经常发生工作一段时间后,某个手机监听的arfcn就不工作了. 检查日志发现,日志最后有连续的多条:TOA AVG is not 16 qb ...