CSES1081:Common Divisors

传送门

题意:找到两个 gcd 最大的数。n2e5,ai1e6

一种方法是枚举 i:1nO(ai)ai 因数的出现次数加一。

然后 i:10000001,如果 cnt[i]>1,输出 i 结束。

复杂度 O(nV)2e8,可惜 CSES 的机子跑不过。

枚举倍数。

cnt[a[i]] 加一。枚举 i:10000001,枚举 ji 的倍数,统计 i 的所有倍数出现次数 tmp。若 tmp>1 表示 i 可行。

复杂度?最差 O(n+i=1VVi)=O(n+VlogV)2e7 可以接受。

对于每个数,枚举因数,是 O(nV) 的;枚举值域内每个数的倍数,是 O(VlogV) 的。

posted @   FLY_lai  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示