这是一个历史遗留题,今天突然想到了就发了上来

题目是这样的:区间加等比数列,区间求和。(来自 @ )

然后我的思路是:

分块(块长 B1B_1)。散块暴力求和。整块维护和,并且用一个 vector 维护 tag

每当块内 tag 数量达到 B2B_2 时,使用分治+NTT 最后求逆相乘的方式求出所有 tag 对应的 OGFOGF 之和。重构次数为 O(nmB1B2)O({nm \over B_1B_2})

时间复杂度 $\Theta(mB_1 + mB_2 \log P + {nm \over B_1} + {nm \over B_1B_2}(B_2 \log^2 B_2 + B_1 \log B_1))$(nn 为数列长度,mm 为操作数,PP 为模数)。n,mn,m 同阶时取 B1=nlogn,B2=nB_1=\sqrt{n}\log n,B_2=\sqrt{n},则复杂度为 Θ(nn(logn+logP))\Theta(n \sqrt{n}(\log n+\log P))

问一下以上思路是否可行。

2 条评论

  • @ 2022-3-25 7:41:37

    有兴趣的话可以造一下数据放主题库((

    • @ 2022-3-25 9:11:21

      数据之前就造好了(但是范围过大了)

      现在在写 std(

    • @ 2022-3-25 18:17:22

      @ 时限要多少啊

      我觉得卡暴力很困难啊。

    • @ 2022-3-25 18:20:14

      @ hx,我还没调好,玄学 RE 了

      2e5 时限应该设个 15~30s(

      如果卡不掉暴力那可以考虑整成交互题(但是我不会 kuaikule

    • @ 2022-3-25 18:20:52

      @ 交互题怎么卡暴力啊?)

    • @ 2022-3-25 18:23:44

      @ 就是定义个表示数值的类,然后定义 +* 等运算和对应的代价什么的

      Dream Fourier Transform 那样的传统题可能也行(

    • @ 2022-3-25 19:25:17

      目前是 WA,以及 MB2logPMB_2 \log P 部分本地跑了 80s……其它部分只有 18s

    • @ 2022-3-26 13:24:09

      @

      不会跑不过暴力吧 🤔

    • @ 2022-3-27 14:03:34

      @ 测试时暴力 24s+,std 16s

  • @ 2022-3-25 7:39:54

    我觉得似乎可以吧 🤔

    • 1