1 条题解

  • 0
    @ 2026-9-3 10:27:55

    题解

    思路

    设 cdc_d 为序列中能被 dd 整除的元素个数。大小恰为 kk 且最大公因数为 11 的子集数为

    Fk=∑d=1Aμ(d)(cdk),F_k=\sum_{d=1}^{A}\mu(d)\binom{c_d}{k},

    其中 A=max⁡aiA=\max a_i,μ\mu 为 Möbius 函数。这是对“所有元素都能被 dd 整除”做 Möbius 反演。

    只需要检查 k≤7k\le7。若一个最小合法子集大小为 mm,那么删除其中任意一个元素后,其余元素的最大公因数都大于 11。可以为每个被删除位置选出一个只被该位置破坏的不同质因子,于是某个元素至少含有其余 m−1m-1 个不同质因子。当 m≥8m\ge8 时,这个数至少为前七个质数之积 510510510510,超过 ai≤300000a_i\le300000,矛盾。

    做法

    先求整个序列的最大公因数;若不为 11,立即输出 −1-1。线性筛求出 1…A1\ldots A 的 Möbius 函数,再用枚举倍数求出所有 cdc_d。依次对 k=1…7k=1\ldots7 精确计算 FkF_k,第一个正数对应最小答案。

    组合数最大为 (3000007)\binom{300000}{7},可用有符号 128 位整数精确容纳,从而避免模数恰好整除真实方案数造成误判。

    子任务 1 可枚举所有子集;子任务 2 可维护每种可能最大公因数对应的最少选择数。

    复杂度

    时间复杂度为 O(Alog⁡A+n)O(A\log A+n),空间复杂度为 O(A)O(A)。

    • 1

    信息

    ID
    1204
    时间
    3000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    0
    上传者