P6667 [清华集训2016] 如何优雅地求和
P6667 [清华集训2016] 如何优雅地求和
Problem
给定最高次幂为 \(x^{m}\) 的多项式函数 \(g(x)\) 和整数 \(n, q\),其中 \(g\) 以点值形式给出,即给定 \(g(0), g(1), \dots, g(m)\)。求:
对 \(998244353\) 取模的结果。
\(1 \le n \le 10^{9}\),\(1 \le m \le 2 \times 10^{4}\),\(0 \le g(i), q < 998244353\)。
Solution
前提紧要:如何优雅地排序。你应该能猜到发生了什么。干脆一鼓作气把这道题扬了。
还是先来确定 \(a\)、\(F(x)\) 和 \(G(x)\)。
我们已知 \(g(0), g(1), \dots, g(m)\),又根据上面的等式,考虑将 \(g\) 的 \(m + 1\) 个点值与 Binomial Sum 标准形式中作为条件的 \(m + 1\) 和式进行关联,即:
这样可以同时得到 \(f_{k} = \binom{n}{k}q^{k}(1 - q)^{n - k}\)。于是得到 \(F(x)\):
接下来是 \(a\) 和 \(G(x)\),可以发现它们是绑定在一起的。
通过展开 \(g(x) = \sum\limits_{i = 0}^{m}g_{i}x^{i}\),我们可以看到这一点:
这里 \(k^{i}\) 又出现了,于是 \(G(x)\) 还是我们的老伙计 \(e^{x}\),不过这一次它扔掉了它的拐杖 \(q\)。让我们来看看 \(G(x)\) 的表现吧:
于是 \(a_{i} = i!\)。这样的结果并不令人意外。
实际上,我们可以发现 \(G(x)\) 和 \(a\) 更像是趋于形式的事物。
更富有人情味地讲——如果你是 \(F(x)\),能有 \(G(x), a\) 这样的好伙计的话,想必是非常幸福的。
(以下画风与上文有所差异)
\(F(x)\) 要开始它的表演了。
首先是犯下傲慢之罪的微分方程,以为自己是高达 \(n + 1\) 项的多项式,于是毫不珍惜地抛出了一坨 \((qx + 1 - q)F^{'}(x)\)。等式右侧的 \(0\) 是神的旨意,是完美的造化,它凝视着 \(F(x)\) 幼稚的挑衅。为什么说是挑衅,注意到等式中的减号就像一截锋利的匕首,其实 \(F(x)\) 有刺杀神灵之意,世人称其为 “丢匕”。
说时迟那时快,\(F(x)\) 变成了 \(F(x + 1)\)。这招叫做多项式平移。
为什么每个 \(x\) 都变成了 \(x + 1\)?其实我们还没有提到等式左侧 \(S(x)\),好巧不巧,这个玩意儿的名字叫做 “丢笔”。传说在 \(S(x)\) 降生之时,世间万物都听到了它振聋发聩的怒吼声,使得万物为之一颤:“我和你们每个人,都有 \(1\) 笔账要算。”所以每一项都加了个 \(1\)。
接着是犯下懒惰之罪的多项式截取:\(\mathscr{F}(x + 1) = F(x + 1) \bmod{x^{m + 1}}\)。\(F\) 家族攒下来的 \(n + 1\) 项财产,由于 \(\mathscr{F}\) 的畏难情绪,只剩下了 \(m + 1\) 项。
注意到 \(S\) 变成了 \(\mathscr{S}\),与 \(\mathscr{F}\) 的畏难情绪相反,\(\mathscr{S}\) 不仅不因为自己的智商感到自卑,还努力依靠自己记忆力的优势不断精通世间万物的真理,成为了 “所有人的物理老师”(出处:欧拉被称为 “全人类的数学老师”)。
再注意到右侧的神灵 \(0\) 变成了 \(\mathscr{D}(x)\),其实 \(\mathscr{D}(x)\) 是 dewbee 的简称,这说明丢笔的造化很深,神灵已经为它留下了一席之位。
著名的化学家 GY 也是一位即将一步登天的人,他离成为祖宗只有一步之遥(迫真)。GY 曾经说过:“我的时间是不多了,但比你的时间多”。这能够表明他对丢笔崇高的敬意与可望不可及的畏难情绪。
设 \(F(x + 1) = \sum\limits_{i = 0}^{n}f_{i}x^{i}\),则 \(\mathscr{F}(x + 1) = \sum\limits_{i = 0}^{m}f_{i}x^{i}\),\(\mathscr{F}^{'}(x + 1) = \sum\limits_{i = 0}^{m}if_{i}x^{i - 1} = \sum\limits_{i = 0}^{m - 1}(i + 1)f_{i + 1}x^{i}\)。
考察前 \(m + 1\) 项。发现只有第 \(m + 1\) 项不完整(即不为 \(0\)),所以可以设 \(\mathscr{D}(x) = ax^{m}\),并通过一通计算得到:
求 \(f_{m}\) 是容易的。\(F(x + 1) = (qx + 1)^{n}\),所以 \(f_{m} = \binom{n}{m}q^{m}\)。
然后是犯下贪婪之罪的整式递推。我们现在想要求出 \(\mathscr{F}(x)\) 第 \(0 \sim m\) 项的系数 \(\mathscr{f}_{0}, \dots, \mathscr{f}_{m}\),众所周知这是可以用 NTT 碾过去的,但是整式递推否决了这个想法。
尽管如此,丢笔认为整式递推仍然具有畏难情绪。对于这种简单的问题,“放第二小问都太简单了,更不要谈第三小问”,整式递推这种低效的算法在丢笔面前显然是不堪入目。“做事情要讲究效率。”丢笔如是说。
化学家 GY 曾就【贪婪】这一概念与丢笔谈笑风生。“你【数据删除】是为了【数据删除】吗?”丢笔对此评价是:”你不用管这些。“表现出了丢笔优雅的自尊心理与摈弃世俗的超凡眼光。
整式递推显然还不够贪婪,所以它触犯了贪婪之罪。
书写递推式:
递推边界为 \(\mathscr{f}_{m + 1} = 0\)。当 \(n < i\) 时,特判 \(\mathscr{f}_{i} = 0\)。当 \(n = i\) 时,特判 \(\mathscr{f}_{n} = q^{n}\)。\(q = 0\) 不想管了,因为代回去 \(0^{0}\) 无意义。
代回答案式:
所以说,丢笔才是神,前面忘了中间忘了后面忘了。
你说得对,但是我推式子时把一个正负号写错了。