1 条题解

  • 0
    @ 2025-8-24 22:40:47

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 0000pnc
    几人仍眼睛明亮 几人已失了魂

    搬运于2025-08-24 22:40:47,当前版本为作者最后更新于2022-10-24 18:37:26,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    首先注意到一个光源是亮着的,当且仅当其被改变状态的次数为奇数次。

    对于一个数 xx,如果操作次数足够多,它被改变状态的次数就是 d(x)1d(x)-1,其中 d(x)d(x)xx 的正因子个数。

    接下来我们来讨论这个足够多的操作次数的下限是多少。由于 xx 的最大正因子显然是它本身,所以这些操作应该至少改变到 xx 的倍数的状态,才能满足 xx 的正因子(除了 11)都被筛选过一遍(即:所有编号为 xx 的倍数的光源操作一次)

    我们注意到 l<r<nl \lt r \lt n。所以对于任意的 i[l,r]i \in [l,r],我们都有 ii 被改变状态的次数为 d(i)1d(i)-1。即 ii 如果是亮着的,那么 d(i)d(i) 为偶数,即 ii 不为完全平方数。那么我们只用求出 [l,r][l,r] 内的完全平方数个数即可。用 std::sqrt 可使复杂度变为 O(logr)O(\log r)

    • 1

    信息

    ID
    8121
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者