1 条题解

  • 0
    @ 2025-8-24 22:29:49

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar a___
    这个家伙很蒻,什么也没有留下qwq

    搬运于2025-08-24 22:29:49,当前版本为作者最后更新于2021-04-08 16:34:41,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    分块。

    设每块大小为 SS,将 nn 个玩具分成 nS\dfrac nS 块。
    fl,r,xf_{l,r,x} 表示仅所有在 [1,l][r,nS][1,l]\cup[r,\dfrac nS] 块内的玩具可售时编号为 xx 的小朋友愉悦度的最大值。
    我们从 11nn 顺次做背包,每做完一个块就用另一个指针从右向左扫一遍做背包,就可以容易地求出 ff
    查询 l,rl,r 时先拿来 fbelong[l]1,belong[r]+1f_{belong[l]-1,belong[r]+1} 再把 ll 所在块内和 rr 所在块内暴力加入。

    时间复杂度:
    修改:$\Theta(\sum n\cdot\dfrac nS\cdot m)=\Theta(\sum\dfrac{n^2m}S)$
    查询:Θ(qSm)=Θ(qmS)\Theta(\sum q\cdot S\cdot m)=\Theta(\sum qmS)
    总复杂度为 Θ(m(n2S+qS))\Theta(\sum m(\dfrac{n^2}S+qS)),取 S=nqS=\dfrac n{\sqrt q} 时最优为 Θ(nmq)\Theta (\sum nm\sqrt q)。 注意如果用的不是单调队列优化多重背包而是二进制分组的话还要多个 log\log

    空间复杂度:
    $\Theta(\dfrac nS\cdot\dfrac nSm)=\Theta(\frac{n^2m}{S^2})$。

    S=nS=\sqrt n 时,时间复杂度为 Θ(m(n+q)n)\Theta(\sum m(n+q)\sqrt n),空间复杂度为 Θ(nm)\Theta(nm),注意到 n\sqrt n 最大只有 100030\sqrt{1000}\approx30,可以通过此题。

    • 1

    信息

    ID
    6554
    时间
    3000ms
    内存
    64MiB
    难度
    6
    标签
    递交数
    0
    已通过
    0
    上传者