1 条题解

  • 0
    @ 2025-8-24 22:24:16

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar RiverHamster
    hope invaluable | 曾经是个OIer

    搬运于2025-08-24 22:24:16,当前版本为作者最后更新于2020-09-19 23:28:06,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    m=2m = 2,可以得到答案的一个下界是 n2\lceil {n \over 2} \rceil

    直接做很难处理,考虑随机一个值必选。根据答案下界,随机一次能得到最优解的概率大于 121 \over 2,因此随机 2020 次左右即可。

    同余条件即 mxym \mid x - yxx 已经通过随机固定,那么枚举每个数 yy,将 xy|x - y| 的所有 素因子 用桶维护,取最大出现次数。

    但可能存在合数 mm,使 kk 同样可以取到最大,可以考虑将两个对应 aia_i 的位置完全相同 的素因子 “合并”。

    如果暴力维护,那么单次尝试 O(nlog2V)\mathcal O(n \log^2 V),因为合法的素因子只有 O(logV)\mathcal O(\log V) 个,我们可以考虑给每 aia_i 赋随机权值,对每个素因子维护 xor-Hash 即可。

    线性筛出每个数最小素因子,总复杂度 O(V+TnlogV)\mathcal O(V + T\cdot n \log V)TT 为随机次数,VV 为值域。

    注意考虑一个素因子重复出现的情况。

    参考实现

    • 1

    信息

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