闲话 23.2.16

闲话

今天模拟赛
T1 普及-
T2 状压板板
T3 冲了个 fail 树上树剖套吉司机的 \(o(n\log^3 n)\) 过了
T4 dij 后 dag 上支配树
什么垃圾题

今天 cd 放了小马宝莉的歌
感觉到人与人之间的喜好总归有不相同
所以今天没有推歌了
不是因为没有歌可推

突然想到头像的事情
有一部分人的头像大概只是想表示“这是我所爱的”,而不是“这是我”或者说“你好,这是我在网络上的化身/象征/avatar,你可以用它来概括我”云云。
或者说一部分人的一部分头像?

杂题

[ABC230H] Bullion

首先你得到了一个重量参数 \(n\)。现在有 \(k\) 种金条,每种金条的重量分别是 \(w_i \le n\),保证其各不相同。每种金条数量无限,同时还有无限个重量为 \(1\),容积无限的袋子。每个袋子中可以装大于 \(0\) 个金条和大于 \(0\) 个非空的袋子。注意袋子不能是空的。

你想知道,当一个袋子的重量恰好\(2,3,\dots,n\) 时,其中装金条的情况有多少种。对于每个答案输出一行,答案对 \(998244353\) 取模。

注意,相同质量的金条之间没有差别,袋子之间也没有差别。

\(1\le n\le 2.5\times 10^5\)

通过一些符号化手法,我们不难表示出答案的组合类。

假设答案的组合类为 \(\mathcal F\),空袋子的组合类为 \(\mathcal Z\),金条的组合类为 \(\mathcal G\),则根据题目要求,能得到

\[\mathcal F = \mathcal Z \times\text{MSET}_{\ge 1}(\mathcal F + \mathcal G) \]

翻译为生成函数即为

\[F(z) = z\times \left( \text{Exp}(F(z) + G(z)) - 1 \right) \]

其中 \(\text{Exp}\) 为 Euler 变换。其又可写作

\[F(z) + z - z \exp \left(\sum_{i\ge 1} \frac{F(z^i) + G(z^i)}{i}\right) = 0 \]

这个形式启发我们通过牛顿迭代得到 \(F\)。由于任意 \(G(z^i)\)\(F(z^i) \text{ s.t. }i > 1\) 在迭代过程中都可看做已知,我们不妨设

\[H(z) = G(z) + \sum_{i\ge 2} \frac{F(z^i) + G(z^i)}{i} \]

这个函数在迭代过程中可视作常数。重写上面的式子为牛顿迭代需要的形式,令 \(x\) 为自变量,\(z\) 为与 \(x\) 无关的常数,得到

\[A(x) = x + z - z \exp \left(x + H(z)\right) \]

\(x\) 求导得到

\[A'(x) = 1 - z \exp \left(x + H(z)\right) \]

因此可以得到牛顿迭代的方法。设 \(F^*(z)\) 为截断在 \(z^n\) 项的结果,\(F(z)\) 为截断在 \(z^{2n}\) 项的结果,可以得到

\[F(z) = F^*(z) - \frac{F^*(z) + z - z \exp \left(F^*(z) + H(z)\right)}{1 - z \exp \left(F^*(z) + H(z)\right)} \]

若视求解 \(H(z)\)\(z^n\) 项内的截断的复杂度为 \(O(n\log n)\),则总时间复杂度为 \(O(n\log n)\)

Submission.

posted @ 2023-02-16 18:07  joke3579  阅读(105)  评论(9编辑  收藏  举报