Link
设(f_n)表示(n)个点的不同构的二叉树个数,(g_n)表示(n)个点的不同构的二叉树的叶节点数之和。
可以得到(g_n=nf_{n-1})。
证:每棵(n-1)个点的二叉树有(n)个位置可以挂上一个叶节点进而得到(n)个点的二叉树。
我们知道(f_n=C_n=frac{2nchoose n}{n+1}),因此(ans=frac{g_n}{f_n}=frac{nf_{n-1}}{n}=frac{2(n+1)}{4n-2})。
#include <cstdio>
int main()
{
double n;
scanf("%lf",&n);
printf("%.9f",n*(n+1)/(2*(2*n-1)));
return 0;
}