[2019.3.6]BZOJ4001 [TJOI2015]概率论

发现答案=(frac{n exttt{个点的不同二叉树的叶子数量和}}{n exttt{个点的不同二叉树数量}})

(n)个点的不同二叉树数量是卡特兰数的典型应用之一,NOIp2018提高组初赛还考过(单项选择第八题),卡特兰数的第(n)项是有(n)个节点的不同二叉树的数量(而题目里说是(n+1)个)。

那么设卡特兰数第(i)项为(Ca_i)

(n)个节点的不同二叉树的叶子数量和为(N_i)

如何求(N_i)呢?

(N_i=i imes Ca_{i-1})

为什么?

打个表找个规律就好了233

所以答案=(frac{n imes Ca_{n-1}}{Ca_n})

又有(Ca_i=frac{C^{2i}_i}{i+1}=frac{(2i)!}{i! imes(i+1)!})

则答案(=frac{n imes(2n-2)! imes n! imes(n+1)!}{(2n)! imes(n-1)! imes n!})

(=frac{n(n+1)}{2(2n-1)})

code:

#include<bits/stdc++.h>
using namespace std;
double n;
int main(){
    scanf("%lf",&n);
    printf("%.9lf",n*(n+1)/((n*2-1)*2));
    return 0;
}
原文地址:https://www.cnblogs.com/xryjr233/p/BZOJ4001.html