题解 CF1043F Make It One

赛时脑抽了,连简单容斥都不会了。

不合法显然所有数 gcd>1

容易发现答案 7,原因是对于一个数考虑,其最多有 7 个因数,可以成一个最多有 71 的二进制数,每次与一个新数取 gcd,如果没有减小任何地方的 1,显然这个数是没贡献的,所以最多减小 7 次。

然后考虑求出选 i 个数后 gcd=j 是否可行,用 fj 表示 gcd=j 的方案数。求出 f1 是否为 0 即可。

这里可以莫反,或者更简单的,因为求出 j|gcd 的方案数是容易的,用 gj 表示,显然有 gj=(cntjans),fi=gii|j,ijfj,其中 cntj 表示 aj 的倍数个数,从大到小递推即可。因为答案为 6 时不行答案就为 7__int128 刚好开得下 (3×1056)

posted @   Terac  阅读(4)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示