一棵随机生成的 \(n\) 个结点的有根二叉树(所有互相不同构的形态等概率出现)的叶子节点数的期望。\(n \leq 10^9\)

Solution

\(n\) 个点的二叉树个数即 Catalan 数 \(f(n)=\frac{C_{2n}^n}{n+1}\)

设 \(g(n)\) 为 \(n\) 个点的所有二叉树的叶子个数和,找规律得 \(g(n)=nf(n-1)\)

Proof. 对于 \(n\) 个点,\(k\) 个叶子的二叉树,删掉任意一个叶子可以得到 \(k\) 个 \(n-1\) 个点的二叉树,这些二叉树每个有 \(n\) 个位置可以挂一个新的叶子

所求为

\[\frac{g_n}{f_n}=\frac{nf_{n-1}}{f_n}=\frac{n(n+1)}{2(2n-1)}
\]

#include <bits/stdc++.h>
using namespace std;
double n;
signed main() {
cin>>n;
printf("%.10lf\n",n*(n+1)/2/(2*n-1));
}

[TJOI2015] 概率论 - Catalan数的更多相关文章

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

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

  2. [TJOI2015]概率论[卡特兰数]

    题意 \(n\) 个节点二叉树的叶子节点的期望个数. \(n\leq 10^9\) . 分析 实际询问可以转化为 \(n\) 个点的不同形态的二叉树的叶子节点总数. 定义 \(f_n\) 表示 \(n ...

  3. luoguP3978 [TJOI2015]概率论 卡特兰数

    考虑分别求出$f_n, g_n$表示$n$个点的有根二叉树的数量和$n$个点的所有情况下有根二叉树的叶子结点的总数 有$f_n = \sum_{k} f_k * f_{n - 1 - k}$,因此有$ ...

  4. BZOJ4001:[TJOI2015]概率论(卡特兰数,概率期望)

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

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

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

  6. [TJOI2015]概率论

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

  7. bzoj4001: [TJOI2015]概率论

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

  8. Catalan数应用整理

    应用一: codevs 3112 二叉树计数  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold   题目描述 Description 一个有n个结点的二叉树总共有 ...

  9. 【64测试20161112】【Catalan数】【数论】【扩展欧几里得】【逆】

    Problem: n个人(偶数)排队,排两行,每一行的身高依次递增,且第二行的人的身高大于对应的第一行的人,问有多少种方案.mod 1e9+9 Solution: 这道题由1,2,5,14 应该想到C ...

随机推荐

  1. 文件(file 类)

    题目: 编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件.之后,将这些文件中的某一个文件剪切到另外一个目录中. 代码: File_Demo /** * 包含两个类,一个主 ...

  2. [web]2019第一起数据泄露事件

    -rwxrwxrwx 33405108 Jan 22 2016 000webhost.txt -rwxrwxrwx 165025 Jul 29 2017 01nii.ru {1.931} [HASH] ...

  3. Codeforces_731_F

    http://codeforces.com/problemset/problem/731/F 其实是暴力枚举,但是有些小技巧,直接保存每个数的数量. 枚举每个起点时,然后依次加上起点大小的分段的数量的 ...

  4. linux下手动安装/升级GCC到较高版本

    一.环境 VMWare+Centos7 二.写在前面的话 安装GCC最简单的方式当然是[yum -y install gcc]但是我的机器上安装下来后,其版本是4.8.5,感觉有点低,所以想升级一下( ...

  5. symfony传参,接收参数,twig方法记录

    呜呜呜,很烦,让我自己完成一个在线学习系统后端,和前端整合一下,我把接口参数搞了半天(学习symfony太久远),记录一下屈辱历史,以后注意,不然上线了一堆bug,很烦 下面是几种返回的数据的格式 1 ...

  6. ubuntu 配置网卡,DNS, iptables

    # 配置静态ip地址 root@simon:~# vim /etc/network/interfaces auto enp4s0 iface enp4s0 inet static address 19 ...

  7. Day4前端学习之路——背景边框列表链接和更复杂的选择器

    课程目标 掌握 CSS 稍微复杂的一些选择器,还有背景,边框等一些 CSS 样式属性 主要内容: 背景属性 边框 列表 链接 其他选择器 选择器概览:https://www.w3school.com. ...

  8. CoreLocation在iOS8上用法的变化

    1.在使用CoreLocation前需要调用如下函数[iOS8专用]: iOS8对定位进行了一些修改,其中包括定位授权的方法,CLLocationManager增加了下面的两个方法: (1)始终允许访 ...

  9. NCE L5

    课文内容 重点单词解析 重点课文解析

  10. vue中子组件触发父组件的方法

    网上找了几种方法,下面这两种最实用,最明了 方法一:父组件方法返回是字符串或数组时用这种方法 子组件: <template> <button @click="submit& ...