CF438E The Child and Binary Tree
一直以为要求点数为 n 导致不会做
首先我们定义 \(G\) 表示对于一个点的树关于权值的 OGF。即 \(G_i\) 表示集合里存在不存在权值 \(i\)。定义 \(F\) 表示一棵无标号二叉树关于权值的 OGF,即 \(F_i\) 表示权值为 \(i\) 的二叉树的数量。
显然有:(空树的权值为0)
\[F_0=1
\]
\[F_n = \sum_{i+j+k=n}F_iG_jF_k,n\ge1
\]
然后可以分治FFT了
进一步转化为:
\[F=F^2G+1
\]
其中加一是因为如果不加会违背 \(F_0=1\)。
然后就可以解二元一次方程了。
\[F^2G-F+1=0
\]
\[F=\frac{1 \pm \sqrt{1-4G}}{2G}
\]
然后发现 G 没有逆元,并且加减不定,不会做。那么我们换一种方法:配方法
\[(FG-1/2)^2=1/4 - G
\]
\[(FG-1/2)= \pm \sqrt{1/4-G}
\]
发现到现在各方面都是合法的。不过还是加减不定。不过显然 \(G_0=0\),等号左边的常数项为 \(-1/2\),那么我们必定要求右边的常数项也是负数,因此是减不是加。即:
\[FG-1/2=-\sqrt{1/4-G}
\]
移项:
\[FG=\frac{1-\sqrt{1-4G}}{2}
\]
发现 \(G\) 还是移不过去,怎么办?
神仙告诉我们,需要分母无理化:
\[FG=\frac{4G}{2(1+\sqrt{1-4G})}
\]
上面单拎出来个 \(G\),然后就爽了:
\[(F-\frac{2}{1+\sqrt{1-4G}})G=0
\]
\(G\) 必定不为0(尽管常数项是0),那么肯定是左边那项为0.即:
\[F=\frac{2}{1+\sqrt{1-4G}}
\]
然后直接求即可。需要多项式开根,多项式求逆。