1 条题解

  • 0
    @ 2025-8-24 22:15:30

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar warzone
    梦违科学世纪

    搬运于2025-08-24 22:15:30,当前版本为作者最后更新于2021-11-03 23:19:48,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    可能更好的阅读体验

    题目大意

    给定 n,a,kn,a,k,求

    i=1nikai\sum_{i=1}^ni^ka^i

    答案对 998244353998244353 取模。

    $\texttt{Data Range:} 1\le k\le 10^7,1\le n,a\le 998244352$

    题解

    前置芝士:有限微积分

    原做法 因需求第二类斯特林数有着 Θ(nlogn)\Theta(n\log n) 的瓶颈,这一做法不再适用。

    但原做法仍有相当程度的借鉴性,具体地,设 f(n)=0nxkaxδxf(n)=\displaystyle{\sum}_0^n{x^ka^x\delta x}

    f(x)=axg(x)a0g(0),g(x)f(x)=a^xg(x)-a^0g(0),g(x)kk 次函数。答案即 f(n+1)f(1)f(n+1)-f(1)

    若已知 g(0),g(1),g(2),g(k)g(0),g(1),g(2),\cdots g(k),我们可以 Θ(k)\Theta(k) 拉格朗日插值求出 g(n+1)g(n+1)

    考虑如何求出 g(m) (0mk)g(m)\ (0\le m\le k),显然线性筛出 iki^kf(m)f(m) 可以 Θ(k)\Theta(k) 递推,于是

    g(m)=am(g(0)+f(m))g(m)=a^{-m}(g(0)+f(m))

    问题变成了如何求出 g(0)g(0)

    g(x)g(x)kk 次函数,因此其 (k+1)(k+1) 阶差分为 00,于是

    $$\Delta^{k+1}g(0)=\sum_{i=0}^{k+1}\dbinom{k+1}{i}(-1)^{k+1-i}\mathrm{E}^ig(0)=0 $$i=0k+1(k+1i)(1)k+1ig(i)=0\sum_{i=0}^{k+1}\dbinom{k+1}{i}(-1)^{k+1-i}g(i)=0 $$\sum_{i=0}^{k+1}\dbinom{k+1}{i}(-1)^{k+1-i}a^{-i}(g(0)+f(i))=0 $$$$g(0)(a^{-1}-1)^{k+1}+\sum_{i=0}^{k+1}\dbinom{k+1}{i}(-1)^{k+1-i}a^{-i}f(i)=0 $$$$g(0)=-(1-a^{-1})^{-k-1}\sum_{i=0}^{k+1}\dbinom{k+1}{i}(-a)^{-i}f(i) $$

    代入即可 Θ(k)\Theta(k) 算出 g(0)g(0)

    特别的,a=1a=1 时,f(x)=g(x),g(x)f(x)=g(x),g(x)k+1k+1 次而非 kk 次,直接插值即可。

    • 1

    信息

    ID
    4922
    时间
    2000ms
    内存
    444MiB
    难度
    7
    标签
    递交数
    0
    已通过
    0
    上传者