zoukankan      html  css  js  c++  java
  • 【洛谷P3978】概率论

    题目

    题目链接:https://www.luogu.com.cn/problem/P3978
    求一棵随机生成的 \(n\) 个结点的有根二叉树期望的叶子节点数。

    思路

    白嫖一道黑。
    完全照搬rqy大爷的题解
    对于一棵\(n\)个节点的二叉树,每一个节点可以往下连两条边,所以总共可以往下连\(2n\)条边;而这棵二叉树已经有\(n-1\)条边了,在\(2n-(n-1)=n+1\)条边中选择一条边连出去都可以形成一棵\(n+1\)个节点的二叉树,且连出去这条边所连接的节点为叶节点,所以一棵有\(n+1\)个节点的二叉树的叶节点个数为\(n\)个节点的二叉树个数\(\times n\)
    而我们知道,大小为\(n\)的二叉树的个数就是卡特兰数的第\(n\)项。所以\(n\)个节点的二叉树的叶子结点数为

    \[(n-1)\times \frac{C^{n-1}_{2(n-1)}}{n} \]

    所以一棵\(n\)个节点的叶子期望个数为

    \[\frac{(n-1)\times \frac{C^{n-1}_{2(n-1)}}{n}}{C^n_{2n}}=\frac{a(a-1)}{4a-2} \]

    代码

    #include <cstdio>
    using namespace std;
    
    long long a;
    
    int main()
    {
    	scanf("%lld",&a);
    	printf("%0.10lf",1.0*a*(a+1)/(4*a-2));
    	return 0;
    }
    

    \[\color{white}{\text{stO rqy Orz}} \]

  • 相关阅读:
    mysql的复制
    web页面请求历程
    django工作原理简介
    http协议
    路由器和交换机的区别
    OSI七层模型
    TCP/IP协议总结
    IO复用
    僵尸进程和孤儿进程
    java源代码如何打成jar包
  • 原文地址:https://www.cnblogs.com/stoorz/p/12228964.html
Copyright © 2011-2022 走看看