1 条题解
-
0
题解
思路
设 为序列中能被 整除的元素个数。大小恰为 且最大公因数为 的子集数为
其中 , 为 Möbius 函数。这是对“所有元素都能被 整除”做 Möbius 反演。
只需要检查 。若一个最小合法子集大小为 ,那么删除其中任意一个元素后,其余元素的最大公因数都大于 。可以为每个被删除位置选出一个只被该位置破坏的不同质因子,于是某个元素至少含有其余 个不同质因子。当 时,这个数至少为前七个质数之积 ,超过 ,矛盾。
做法
先求整个序列的最大公因数;若不为 ,立即输出 。线性筛求出 的 Möbius 函数,再用枚举倍数求出所有 。依次对 精确计算 ,第一个正数对应最小答案。
组合数最大为 ,可用有符号 128 位整数精确容纳,从而避免模数恰好整除真实方案数造成误判。
子任务 1 可枚举所有子集;子任务 2 可维护每种可能最大公因数对应的最少选择数。
复杂度
时间复杂度为 ,空间复杂度为 。
- 1
信息
- ID
- 1204
- 时间
- 3000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 0
- 上传者