题意
(n) 个节点二叉树的叶子节点的期望个数。
(nleq 10^9) .
分析
-
实际询问可以转化为 (n) 个点的不同形态的二叉树的叶子节点总数。
-
定义 (f_n) 表示 (n) 个节点的二叉树的个数, (g_n) 表示 (n) 个节点的不同形态的二叉树的叶子节点总数。
-
设一棵 (n) 个节点的树有 (m) 个叶子节点,每删去一个叶子节点都可以得到一棵大小为 (n-1) 的二叉树,考虑每个大小为 (n-1) 的二叉树,共有 (n) 个叶子节点,会被 (n) 棵大小为 (n) 的树考虑叶子贡献。
-
得到 (g_n=frac{n*f_{n-1}}{f_n})。
-
(f_n) 是卡特兰数的第 (n) 项。
-
化简之后答案为(frac{n(n+1)}{4n-2}) .
代码
#include<cstdio>
using namespace std;
double x;
int main(){
scanf("%lf",&x);
printf("%.9lf
",(x*(x+1)/2/(2*x-1)));
return 0;
}