1 条题解

  • 0
    @ 2025-8-24 21:51:29

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar noip
    对你说再见

    搬运于2025-08-24 21:51:29,当前版本为作者最后更新于2017-03-19 22:06:39,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    考虑对于减操作,用bitset来维护每个数是否出现过

    这样就可以O( c / 64 )的查询区间是否有两个数差为x了,即得到区间的bitset a,( a & ( a << x ) ).count()

    加操作同理,维护一个反的bitset即可

    乘操作直接暴力枚举小的因数,是O( sqrt( n ) )的

    用膜队维护区间的bitset,总复杂度为O( m( sqrt( n ) + c / 64 ) )

    其实除也可以做的。。。只是似乎有点麻烦

    • 1

    信息

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