标签:tps 求和 display http ref 传送门 计算 注意 2-2
题目传送门
题目大意
给出\(q\)个查询,每次查询\(n\)个点的仙人掌有多少个。
\(q\le 5\times 10^4,n\le 131072\)
思路
因为这道题太难码了,所以先把题解写了再写代码(好奇怪啊)
我们设\(c_n\)为\(n\)个点时的答案,我们对其构造指数型生成函数\(C(x)\):
\[C(x)=\sum_{i=0} c_i\frac{x^i}{i!}
\]
我们考虑钦定一个根,然后连边,显然要么连出去一条边,要么连出去一个环。需要注意的是,连边相当于把根与一个仙人掌相连,连环的环其实是仙人掌连成一个环。
于是,我们可以得到转移式:
\[C(x)=x\exp (C(x)+\frac{1}{2}\sum_{i=2}^{\infty} C^i(x))
\]
除以\(2\)是因为一个环无论正反都是一样,但是我们计算时却视作两种情况。
将上式用等比数列求和公式可以得到:
\[C(x)=x\exp(\frac{2C(x)-C^2(x)}{2-2C(x)})
\]
我们发现我们如果构造
\[F(C(x))=x\exp(\frac{2C(x)-C^2(x)}{2-2C(x)})-C(x)
\]
我们即是要求导\(F(C(x))\)的根,对此,我们可以使用多项式牛顿迭代法。我们就需要求到\(F(C(x))\)的导:
\[F^{‘}(C(x))=(x\exp(\frac{2C(x)-C^2(x)}{2-2C(x)})-C(x))^{‘}
\]
\[=x\exp (\frac{2C(x)-C^2(x)}{2-2C(x)})(\frac{2C(x)-C^2(x)}{2-2C(x)})^{‘}-1
\]
\[=x\exp (\frac{2C(x)-C^2(x)}{2-2C(x)})\frac{C^2(x)-2C(x)+2}{2C^2(x)-4C(x)+2}-1
\]
于是,我们可以得到牛顿迭代法的式子:
\[C(x)=C_0(x)-\frac{F(C_0(x))}{F^{‘}(C_0(x))}
\]
\[=C_0(x)-\frac{x\exp(\frac{2C_0(x)-C_0^2(x)}{2-2C_0(x)})-C(x)}{x\exp (\frac{2C_0(x)-C_0^2(x)}{2-2C_0(x)})\frac{C_0^2(x)-2C_0(x)+2}{2C_0^2(x)-4C_0(x)+2}-1}
\]
\[=C_0(x)-\frac{2x\exp (\frac{2C_0(x)-C_0^2(x)}{2-2C_0(x)})-2C_0(x)}{(1+\frac{1}{(C_0(x)-1)^2})x\exp (\frac{2C_0(x)-C_0^2(x)}{2-2C_0(x)})-2}
\]
我们发现如果我们设\(G=x\exp (\frac{2C_0(x)-C_0^2(x)}{2-2C_0(x)})\),那么式子就可以化为:
\[C(x)=C_0(x)-\frac{2G-2C_0(x)}{(1+\frac{1}{(C_0(x)-1)^2})G-2}
\]
题解 仙人掌计数
标签:tps 求和 display http ref 传送门 计算 注意 2-2
原文地址:https://www.cnblogs.com/Dark-Romance/p/13292609.html