zoukankan      html  css  js  c++  java
  • BZOJ4001[TJOI2015]概率论(数学、期望、生成函数、卡特兰数)

    题目传送:https://www.lydsy.com/JudgeOnline/problem.php?id=4001

    Description

    111(3)

    Input

    输入一个正整数N,代表有根树的结点数

    Output

    输出这棵树期望的叶子节点数。要求误差小于1e-9

    Sample Input

    1

    Sample Output

    1.000000000

    HINT

    1<=N<=10^9


    既然每种形态出现的概率相同,如果g(i)表示有i个节点的二叉树形态数,f(i)表示有i个节点的二叉树所有形态的叶子节点个数之和,那么答案显然是f(n)/g(n)。考虑计算g(i),除去一个节点作为根,其余的节点分到左右子树,不难得出递推式:

    image

    计算f(i),枚举左子树,累加左子树的贡献,右子树等价,不难得出递推式:

    image

    观察这两个式子,都是卷积的形式,卷积对应着生成函数相乘,那么构造f(x)的生成函数F(x),g(x)的生成函数G(x),根据递推式可得:

    image

    解得:

    image

    G(x)不取另一根是为了让函数收敛。

    利用广义二项式定理展开,一波推导可得:image

    那么:image

    我只想说:打表找规律多好啊!!!

    代码:

      1 #include <cstdio>
      2 #include <cstring>
      3 #include <iostream>
      4 using namespace std;
      5 
      6 int main()
      7 {
      8 	double n;
      9 	scanf("%lf" , &n);
     10 	printf("%.9lf
    " , n * (n + 1) / (2 * n - 1) / 2);
     11 	return 0;
     12 }//Rhein_E
    View Code
  • 相关阅读:
    F系列车牌识别设备
    金蝶云星空安装及卸载教程
    RG-RAC256高性能无线控制器
    关于IP网段划分
    Win10关闭自动更新的三种方法
    锐捷网络RG-S2528G-24P
    光纤信号的传输距离
    POE交换机
    光纤收发器
    大华工具管家 1.01.1官方版
  • 原文地址:https://www.cnblogs.com/Rhein-E/p/9392209.html
Copyright © 2011-2022 走看看