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}} \]

然后直接求即可。需要多项式开根,多项式求逆。

posted @ 2020-08-14 18:29  JiaZP  阅读(83)  评论(0编辑  收藏  举报