Luogu5401

这里主要记录一下如何用二元生成函数并不快速地推导生成函数式,顺带给出一种蛮暴的做法。

\(x\) 表示数量,并在这一维度上做出 EGF 的策略。

\(y\) 表示贡献。

\[\sum_n{x^ny^{\lfloor\frac n2\rfloor}\over n!} \\=\sum_{2|n}{x^ny^{\frac n2}\over n!} +\sum_{2\nmid n}{x^ny^{\frac{n-1}2}\over n!} \\=\sum_n{x^ny^{\frac n2}\over n!}[2|n] +\sum_{n}{x^ny^{\frac{n-1}2}\over n!}[2\nmid n] \\=\sum_n{x^ny^{\frac n2}\over n!}{1+(-1)^n\over2} +\sum_{n}{x^ny^{\frac{n-1}2}\over n!}{1-(-1)^n\over2} \\={\exp(x\sqrt y)+\exp(-x\sqrt y)\over2}+{1\over\sqrt y}{\exp(x\sqrt y)-\exp(-x\sqrt y)\over2} \\=\ch(x\sqrt y)+{\sh(x\sqrt y)\over\sqrt y} \]

\[\sum_{t\ge m}[{x^n\over n!}y^t] (\ch(x\sqrt y)+{\sh(x\sqrt y)\over\sqrt y})^D \\=n!\sum_{t\ge m}[x^{n-2t}y^{2t}] (\ch y+x{\sh y\over y})^D \\=n!\sum_{t\ge m}[y^{2t}]\binom D{n-2t}({\sh y\over y})^{n-2t} (\ch y)^{D-n+2t} \\=n!\sum_{t\ge m}[y^n]\binom D{n-2t}({\sh y})^{n-2t} (\ch y)^{D-n+2t} \\=[{z^n\over n!}]\sum_{t\ge m}\binom D{n-2t}(\sh^{n-2t}z)(\ch^{D-n+2t}z) \\=2^{-D}[{z^n\over n!}]\sum_{t\le n-2m}\binom Dt(e^{z}-e^{-z})^t(e^{z}+e^{-z})^{D-t} \]

接下来就可以暴力展开转 OGF 转复合了。

\[2^{-D}\sum_T(D-2T)^n[z^T] (1+z)^D\sum_{t\le n-2m,t\le D}\binom Dt({1-z\over1+z})^t \]

然后会出现一个多项式右复合的形式,推一下可以很 bf 地复合求出整个柿子。大致就是 \({1-z\over1+z}=2\times{1\over1+z}-1\),里面的分式可以通过翻转系数的做法也转成普通的横坐标平移。

复杂度 \(O(d\log d)\)

实际效率蛮高的,可以在总计 1s 内得解(不过可能和我的实现里用了 DIF-DIT 有关)。

似乎有基于 ODE 的无需转复合的近线性做法?

posted @ 2022-02-14 07:32  myee  阅读(38)  评论(0编辑  收藏  举报