首先令 $a_n$ 为 $n$ 个奇点的奇树数量,类似的,定义 $b_n$ 为 $n$ 个偶点的偶树数量。 然后令 $A(x)=\sum_{i \ge 0}{a_ix^i}\ ,\ B(x)=\sum_{i \ge 0}{b_ix^i}$. 我们肯定是往根下面连若干个偶树使其成为奇树,或者是往根下面连若干个奇树使其成为偶树。 对于前者,枚举子树的大小,类似背包,可以得到: $$A(x)=x\prod_{i \ge 1}{(1+x^i+x^{2i}+\dots)^{b_i}}$$ $$=x\prod_{i \ge 1}{(\frac{1}{1-x^i})^{b_i}}$$ 乘 $x$ 是因为根本身是一个奇点。 于是: $$\ln(A(x))=\ln(x)-\sum_{i \ge 1}{b_i\ln(1-x^i)}$$ 两边求导: $$\frac{A'(x)}{A(x)}=\frac{1}{x}+\sum_{i \ge 1}{ib_i\frac{x^{i-1}}{1-x^i}}$$ 两边乘 $xA(x)$: $$xA'(x)=A(x)+A(x)\sum_{i \ge 1}{ib_i\frac{x^i}{1-x^i}}$$ 考虑第 $n$ 项系数: $$na_n=a_n+\sum_{i=1}^{n-1}{a_i\sum_{j=1}^{n-1}{jb_j([x^{n-i}]\frac{x^j}{1-x^j})}}$$ 而: $$\frac{x^j}{1-x^j}=\sum_{i \ge 1}{x^{ij}}=\sum_{i \ge 1}{[j|i]x^i}$$ 于是: $$na_n=a_n+\sum_{i=1}^{n-1}{a_i\sum_{j=1}^{n-1}{jb_j[j|n-i]}}$$ 也就是: $$a_n=\frac{\sum_{i=1}^{n-1}{a_i\sum_{j=1}^{n-1}{jb_j[j|n-i]}}}{n-1}$$
再看后者,类似的,有: $$B(x)=\prod_{i \ge 1}{(\frac{1}{1-x^i})^{a_i}}-1$$ $-1$ 是因为不存在 $0$ 个偶点的偶树。 类似得到: $$b_n=\frac{\sum_{i=0}^{n-1}{(b_i+[i=0])\sum_{j=1}^{n}{ja_j[j|n-i]}}}{n}$$
这样就可以使用分治 $NTT$ 解决了,时间复杂度 $O(n\log^2n)$.
题目3884 有根无标号「奇树」计数
11
评论
2023-04-13 21:23:18
|