题解 「TJOI2015」概率论
Description
Solution
考虑计算所有情况下的叶子总数然后除以树的种类数 .
设 \(f(i)\) 为大小为 \(i\) 的树的叶子数总和 ,\(g(i)\) 为大小为 \(i\) 的全部树的种类数.
那么显然有递推式
\(f(i)=2\sum\limits_{j=1}^{i-1}f(j)g(i-j-1),f(1)=1\)
枚举左子树大小并计算情况数 , 乘 \(2\) 表示右子树也要算 .
\(g(i)=\sum\limits_{j=0}^{i-1}g(j)g(i-1-j),g(0)=1\)
直接枚举左右子树大小 .
把转移写成 GF
\(F(x)=2xF(x)G(x)+x\)
\(G(x)=xG^2(x)+1\)
对上面的式子解方程可得
\(\displaystyle G(x)=\frac{1-\sqrt{1-4x}}{2x}\)
\(2xG(x)=1-\sqrt{1-4x}\)
尝试展开 \(\sqrt{1-4x}\) (下列内容照抄 oi-wiki)
\(\begin{aligned}\sqrt{1-4x}&=(1-4x)^{\frac12}\\&=\sum\limits_{n=0}\binom{\frac12}{n}(-4x)^n\\&=1+\sum\limits_{n=1}\frac{(\frac12)^{\underline n}}{n!}(-4x)^n\end{aligned}\)
观察 \(\displaystyle(\frac12)^{\underline n}\)
\(\begin{aligned}(\frac12)^{\underline n}&=\frac12\times\frac{-1}2\times\frac{-3}2...\times \times\frac{3-2*n}2\\&=\frac{(-1)^{n-1}}{2^n}(2n-3)!!\\&=\frac{(-1)^{n-1}(2n-2)!}{2^n(2n-2)!!}\\&=\frac{(-1)^{n-1}(2n-2)!}{2^{2n-1}(n-1)!}\end{aligned}\)
代回原式
\(\begin{aligned}\sqrt{1-4x}&=1+\sum\limits_{n=1}\frac{(-1)^{n-1}(2n-2)!}{n!2^{2n-1}(n-1)!}(-4x)^n\\&=1+\sum\limits_{n=1}\frac{-2(2n-2)!}{n!(n-1)!}x^n\end{aligned}\)
故
\(\begin{aligned}2xG(x)&=\sum\limits_{n=1}\frac{2(2n-2)!}{n!(n-1)!}x^n\\G(x)&=\sum\limits_{n=0}\frac{(2n)!}{(n+1)!n!}x^n\\G(n)&=\frac{(2n)!}{(n+1)!n!}\end{aligned}\)
对于 \(F\) 有
\(\begin{aligned}F(x)&=2xF(x)G(x)+x\\F(x)&=F(x)(1-\sqrt{1-4x})+x\\F(x)&=\frac{x}{\sqrt{1-4x}}\\\frac{F(x)}x&=(1-4x)^{-\frac12}\\&=\sum\limits_{n=0}\binom{-\frac12}{n}(-4x)^n\end{aligned}\)
使用和上面一样的方法可以解出
\(\displaystyle F(x)=\sum\limits_{n=1}\frac{(2n-2)!}{(n-1)!(n-1)!}x^n\)
所以答案为 \(\displaystyle\frac{(2n-2)!}{(n-1)!(n-1)!}\frac{(n+1)!n!}{(2n)!}=\frac{(n+1)n}{(2n-1)2}\)
Code
#include<bits/stdc++.h>
using namespace std;
double n;
int main()
{
scanf("%lf",&n);
printf("%.10lf\n",(n+1)*n/(2*n-1)/2);
return 0;
}