2022.10.25 闲话

SoyTony

搁浅

久未放晴的天空
依旧留着你的笑容
哭过 却无法掩埋歉疚
风筝在阴天搁浅
想念还在等待救援
我拉着线 复习你给的温柔
曝晒在一旁的寂寞
笑我给不起承诺
怎么会 怎么会
你竟原谅了我
我只能永远读着对白
读着我给你的伤害
我原谅不了我
就请你当作我已不在
我睁开双眼看着空白
忘记你对我的期待
读完了依赖 我很快就离开
久未放晴的天空
依旧留着你的笑容
哭过 却无法掩埋歉疚
风筝在阴天搁浅
想念还在等待救援
我拉着线 复习你给的温柔
曝晒在一旁的寂寞
笑我给不起承诺
怎么会 怎么会
你竟原谅了我
我只能永远读着对白
读着我给你的伤害
我原谅不了我
就请你当作我已不在
我睁开双眼 看着空白
忘记你对我的期待
读完了依赖 我很快就
我只能永远读着对白
读着我给你的伤害
我原谅不了我
就请你当作我已不在
我睁开双眼看着空白
忘记你对我的期待
读完了依赖 我很快就离开

感谢 lyin, SoyTony, APJifengc 指导 .

题面:

维护一个序列 \(\{a_n\}\),支持:

  • change x y,将 \(a_x\) 改成 \(y\) .
  • query x,求

    \[\sum_{i=1}^xa_i\cdot a_{x+1-i} \]

    \(998244353\) 取模 .

题解:

首先 \(\verb!query!\) 就是一个卷积形式,如果没有 \(\verb!change!\) 就 NTT 计算即可 \(\Theta(n\log n+q)\) .

考虑有 \(\verb!change!\) 咋做 . 对时间分块,设块长为 \(B\),则修改的时候把修改存下来,每 \(B\) 次真正实施修改,NTT 一遍算卷积,块内就直接用修改序列依次算贡献即可,时间复杂度 \(\Theta\left(\dfrac qBn\log n+qB\right)\) .

显而易见 \(B=\Theta(\sqrt{n\log n})\) 时上式取到最小值 \(\Theta(q\sqrt{n\log n})\) .

顺便说一下,这个其实是在线的 .


UPD. 伟大之神 Reliauk 对此的评价:

posted @ 2022-10-25 21:10  Jijidawang  阅读(95)  评论(3编辑  收藏  举报
😅​