AT5202
前言
这里有个不用 min-max 反演的爆标做法。
其复杂度可以做到 \(O(n^2\log n)\)。(认为 \(n\sim\sum A\sim\sum B\))
可以先去了解一下 【ZJOI2019】开关 的 GF 做法再来阅读此题解。
一个记号
为了避免歧义,先声明一下一个看上去有点古怪的记号。
设
则定义
直观看来就是给每个系数乘上了一个阶乘。
因此,这就是一个从 EGF 转为 OGF 的记号。
不难验证其对加法、数乘有线性。
初步思路
设 \(P_i=\dfrac{A_i}S\)。
考虑暴力枚举最后一步是什么数。
那么,除了当前数 \(i\) 外,别的数 \(j\) 都已经出现了至少 \(B_j\) 次,而自己先前已经出现了恰 \(B_i-1\) 次。
因此,考虑 EGF 组合意义,设:
则答案即
或者改写成
(其实 \(\Xi h\) 此处可以认为是转成了 PGF,然后这个柿子的正确性就不言而喻了)
容易发现 \(h\) 即分式 \(\sum\dfrac gf\) 的分子。
容易发现 \(h\) 把乘法展开后每项均形如
升一维!
换元,设 \(u=e^{\frac zS}\),则即
因此我们可以暴力模拟加入一个分式通分的过程,把 \(h\) 的计算使用一个二维背包的 dp 在 \(O(n^3)\)(应该?)的时间内完成。
造福调试
以下是样例二的 \(h\),可供调试使用。
进一步推导
考虑怎么计算
为了方便,以下解出
的柿子,然后最后再把 \(b\) 代为 \(\frac bS\) 即可。
先摆结论:
证明?
可以直接把系数展开;当然,也有更简洁(?)的推导,见文末。
然后就很简单了。
好了?
好,我们现在已经得到了一个 \(O(n^3)\)(应该?)的做法了。
但是这样还不够,我们可以来的更给力一点啊!
考虑瓶颈在分式基求和上。
回想是一维多项式时,我们可以在 \(O(n\log^2n)\) 的时间内用分治卷积解决。
现在是二维多项式的分式基,我们依旧考虑分治卷积,只是单次乘法改用二维 FFT。
这样,我们就做到了 \(O(n^2\log n)\) 的优秀复杂度!
于是,我们就爆标了。
Laplace 变换
文末,我们给出 \(\Xi z^ae^{bz}\) 的另一种推导方法。
大家都知道
吧?
不知道也没有关系,现在不就知道了。
定义 Laplace 变换
容易验证有 \(\Xi f={\mathcal L}f\)。
于是 \(f=z^ae^{bz}\) 时,
于是就得到
这是一个令人满意的收尾。
本文来自博客园,作者:myee,转载请注明原文链接:https://www.cnblogs.com/myee/p/Luogu-solution-at5202.html