Link
设\(f_n\)表示\(n\)个点的不同构的二叉树个数,\(g_n\)表示\(n\)个点的不同构的二叉树的叶节点数之和。
可以得到\(g_n=nf_{n-1}\)。
证:每棵\(n-1\)个点的二叉树有\(n\)个位置可以挂上一个叶节点进而得到\(n\)个点的二叉树。
我们知道\(f_n=C_n=\frac{2n\choose 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;
}