1 条题解

  • 0
    @ 2025-8-24 22:44:00

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Sol1
    博客:sol1.netlify.app

    搬运于2025-08-24 22:44:00,当前版本为作者最后更新于2023-01-01 19:56:31,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    Ex 题解

    1C

    考虑暴力 DP:

    fi,jf_{i,j} 表示填到前 ii 位,运算结果是 jj 的方案数,结果大于 mm 统一记为 m+1m+1(因为再接一位一定是 0)。朴素实现可得 24,精细实现可得 40。(事实上 40 分很提示正解)

    考虑所有转移。对于 A:

    1. 所有数都可以往后接一个更小的数转移到 0。
    2. 1 可以接任意数转移到对应的数。
    3. 0 接任意数转移到 1。
    4. 其余转移不多。

    对于 C:

    1. 所有数都可以往后接一个更小的数转移到 00
    2. 所有数都可以往后接自己转移到 11
    3. 所有数都可以往后接自己 +1 转移到自己 +1。
    4. 1 可以接任意数转移到该数。
    5. 其余转移不多。

    这里会有几个重复转移(例如 1C1=11{\rm C}1=1 会被多次转移),需要减掉。重复部分很少所以可以直接归到最后一类里面。

    依次考虑每一种转移:

    1. 全局 ai(i1)\sum a_i(i-1),单点修改
    2. 全局加
    3. 单点修改,单点求值
    4. 单点修改,单点求值
    5. 同 1
    6. 全局和,单点修改
    7. 整体向右平移一位
    8. 全局加
    9. 同 3

    所以数据结构需要支持:

    • O(1)O(1) 单点修改;
    • O(1)O(1) 单点求值;
    • O(m)O(\sqrt m) 以下全局加;
    • O(m)O(\sqrt m) 以下全局和;
    • O(m)O(\sqrt m) 以下全局 ai(i1)\sum a_i(i-1)
    • O(m)O(\sqrt m) 以下向右平移一位。

    注意这个转移的过程中前一列的 DP 不能继承到后一列,所以还要支持:

    • O(m)O(\sqrt m) 以下全部清零。

    使用一个 O(1)O(1) 数据结构维护:保存 DP 数组 ff 和一个时间标记数组 tts1=i=0mfis_1=\sum_{i=0}^mf_is2=i=0mfi(i1)s_2=\sum_{i=0}^mf_{i}(i-1),以及一个清零值 v0v_0,清零时间 t0t_0,整体加的值 vAv_A。考虑所有操作:

    • 单点修改:这里是单点加,下放标记(如果 ti<t0t_i<t_0,将时间修改到 t0t_0fif_i 修改到 v0v_0)之后直接改数组并对应更新 s1s_1s2s_2 就行,O(1)O(1)
    • 单点求值:下放标记后返回 fi+vAf_i+v_A 即可,O(1)O(1)
    • 全局加:修改 vA,s1,s2v_A,s_1,s_2 即可,O(1)O(1)
    • 全局和:返回 s1s_1 即可,O(1)O(1)
    • 全局 ai(i1)\sum a_i(i-1):返回 s2+f0s_2+f_0 即可(注意 s2s_2f0f_0 的系数是 1-1),O(1)O(1)
    • 向右平移一位:修改 f,tf,t 的起始指针的位置(可以开一个两倍长的数组,初始把指针指在中间,这样每次直接自减 1 即可),并对应修改 s1s_1s2s_2 即可,O(1)O(1)
    • 清零:将 t0t_0 设为当前时间,v0v_0 设为 vA-v_As1s_1s2s_2 均设为 00 即可,O(1)O(1)

    最后一个运算符特殊处理,需要求组合数上指标前缀和或者下降幂底数前缀和,都是经典问题,可以 O(1)O(1) 求。

    所以这题就做完了。最后复杂度是 O(ni=2mi!mi)O(n\sum_{i=2}^{\sqrt m}\sqrt[i]{i!m}),实际 m=105m=10^5 时 A/C 转移分别只有 393/1195393/1195 个,可以通过。

    • 1

    信息

    ID
    8227
    时间
    3000ms
    内存
    512MiB
    难度
    7
    标签
    递交数
    0
    已通过
    0
    上传者