AT5202

前言

这里有个不用 min-max 反演的爆标做法。

其复杂度可以做到 \(O(n^2\log n)\)。(认为 \(n\sim\sum A\sim\sum B\)

可以先去了解一下 【ZJOI2019】开关 的 GF 做法再来阅读此题解。


一个记号

为了避免歧义,先声明一下一个看上去有点古怪的记号。

\[f=\sum_kf_kz^k \]

则定义

\[\Xi f=\sum_kk!f_kz^k \]

直观看来就是给每个系数乘上了一个阶乘。

因此,这就是一个从 EGF 转为 OGF 的记号

不难验证其对加法、数乘有线性。


初步思路

\(P_i=\dfrac{A_i}S\)

考虑暴力枚举最后一步是什么数。

那么,除了当前数 \(i\) 外,别的数 \(j\) 都已经出现了至少 \(B_j\) 次,而自己先前已经出现了恰 \(B_i-1\) 次。

因此,考虑 EGF 组合意义,设:

\[f_i=\sum_{k\ge B_i}{P_i^kz^k\over k!}=e^{P_iz}-\sum_{k<B_i}{P_i^kz^k\over k!} \]

\[g_i={P_i^{B_i}z^{B_i-1}\over(B_i-1)!} \]

\[h=\sum_ig_i\sum_{j\neq i}f_j \]

则答案即

\[\sum_kk[{z^k\over k!}]h \]

或者改写成

\[(\Xi h)'(1) \]

(其实 \(\Xi h\) 此处可以认为是转成了 PGF,然后这个柿子的正确性就不言而喻了)


容易发现 \(h\) 即分式 \(\sum\dfrac gf\) 的分子。

容易发现 \(h\) 把乘法展开后每项均形如

\[C_{ab}z^ae^{\frac{bz}S} \]

升一维!

换元,设 \(u=e^{\frac zS}\),则即

\[C_{ab}z^au^b \]

因此我们可以暴力模拟加入一个分式通分的过程,把 \(h\) 的计算使用一个二维背包的 dp 在 \(O(n^3)\)(应该?)的时间内完成。


造福调试

以下是样例二的 \(h\),可供调试使用。

\[-{{\left(u^3-2\right)\,z^3+\left(-u^5+9\,u^3+4\,u^2-24\right)\,z^2+ \left(-48\,u^4+48\,u^3+36\,u^2+120\,u-156\right)\,z-216\,u^3+216\,u^ 2+216\,u-216}\over{432}} \]


进一步推导

考虑怎么计算

\[(\Xi z^ae^{\frac{bz}S})'(1) \]

为了方便,以下解出

\[(\Xi z^ae^{bz})'(1) \]

的柿子,然后最后再把 \(b\) 代为 \(\frac bS\) 即可。

先摆结论:

\[\Xi z^ae^{bz}={a!z^a\over(1-bz)^{a+1}} \]

证明?

可以直接把系数展开;当然,也有更简洁(?)的推导,见文末。

然后就很简单了。

\[(\Xi z^ae^{bz})'=\bigg({a!z^a\over(1-bz)^{a+1}}\bigg)'={a!z^{a-1}(a+bz)\over(1-bz)^{a+2}} \]

\[(\Xi z^ae^{bz})'(1)={a!(a+b)\over(1-b)^{a+2}} \]


好了?

好,我们现在已经得到了一个 \(O(n^3)\)(应该?)的做法了。

但是这样还不够,我们可以来的更给力一点啊!

考虑瓶颈在分式基求和上。

回想是一维多项式时,我们可以在 \(O(n\log^2n)\) 的时间内用分治卷积解决。

现在是二维多项式的分式基,我们依旧考虑分治卷积,只是单次乘法改用二维 FFT

这样,我们就做到了 \(O(n^2\log n)\) 的优秀复杂度!

于是,我们就爆标了。


Laplace 变换

文末,我们给出 \(\Xi z^ae^{bz}\) 的另一种推导方法。

大家都知道

\[a!=\int_0^{+\infty}t^ae^{-t}\operatorname dt \]

吧?

不知道也没有关系,现在不就知道了。

定义 Laplace 变换

\[{\mathcal L}f(z)=\int_0^{+\infty}f(zt)e^{-t}\operatorname dt \]

容易验证有 \(\Xi f={\mathcal L}f\)

于是 \(f=z^ae^{bz}\) 时,

\[{\mathcal L}f(z)=\int_0^{+\infty}f(zt)e^{-t}\operatorname dt\\=\int_0^{+\infty}(zt)^ae^{bzt}e^{-t}\operatorname dt\\=z^a\int_0^{+\infty}t^ae^{-t(1-bz)}\operatorname dt\\={z^a\over(1-bz)^{a+1}}\int_0^{+\infty}(t(1-bz))^ae^{-t(1-bz)}\operatorname d(t(1-bz))\\={a!z^a\over(1-bz)^{a+1}} \]

于是就得到

\[\Xi z^ae^{bz}={a!z^a\over(1-bz)^{a+1}} \]

这是一个令人满意的收尾。

posted @ 2022-08-22 14:32  myee  阅读(45)  评论(1编辑  收藏  举报