zoukankan      html  css  js  c++  java
  • 「TJOI2015」概率论 题解

    rqy tql %%%
    这篇题解就只是在翻译rqy的做法(

    这题如果要从代数意义去推导的话很烦而且很难,所以考虑组合意义

    (f_n) 为大小为 (n) 的不同二叉树数量,(g_n) 为大小为 (n) 的不同二叉树数量的叶子节点之和,答案显然就是 (frac{g_n}{f_n})(f_n) 就是我们非常熟悉的卡特兰数了,考虑 (g_n) 怎么去做

    设一棵大小为 (n) 二叉树的叶子节点为 (k) 个,如果将这 (k) 个叶子节点中的任何一个删去,就可以得到 (k) 个大小为 (n-1) 的二叉树。倒着考虑,任何一个大小为 (n-1) 的二叉树只要添加一个叶子节点就能给 (g_n) 增加大小为 (1) 的贡献,并且这两句话的本质相同。

    那么考虑大小为 (n-1) 的二叉树有多少种添加叶子节点的方式。

    在此之前讲一些初赛内容:

    假定一棵二叉树的大小为 (n),有 (a) 个节点有两个儿子,有 (b) 个节点有一个儿子,有 (c) 个节点是叶子节点

    显然有 (egin{cases} a+b+c=n ① \ 2a+b=n-1 ② end{cases})

    解释 ② 式:除了根节点以外,每个节点都有父亲,所以我们看有多少个节点是作为儿子,②式就显然成立。

    (2 imes ①-② Rightarrow b+2c=n+1)

    发现 (b+2c) 就是我们要求的可以添加叶子节点的方案数(有 (b) 个节点有一个空着的地方可以放叶子节点,(c) 个节点有两个空着的地方可以放叶子节点),即 (n+1)

    那么每一个大小为 (n-1) 的二叉树有 (n) 种添加叶子节点的方式。

    因为每一种添加叶子节点的方式都可以给 (g_n) 贡献 1,那么 (g_n=f_{n-1} imes n)

    既然 (g_n) 推导出来了,那么 (frac{g_n}{f_n}) 推导出来也是显然的了,答案就是 (frac{n imes (n+1)}{2 imes (n-1)})

  • 相关阅读:
    0006 字符串转整数
    0005 反转整数
    0004 最长回文子串
    0003 无重复字符的最长子串
    0002 两数相加
    0001 两数之和
    使用jquery+css实现瀑布流布局
    更简单的轮播实现
    类和对象
    生产者-消费者(wait-notify实现)
  • 原文地址:https://www.cnblogs.com/limit-ak-ioi/p/13230481.html
Copyright © 2011-2022 走看看