一点优化枚举的感想

做了两道数学题。

洛谷P1154

这道题中要找到一个最小的k使得k不是a[i]的约数。

a有1250 0000

我一开始对每个a都用记忆化把约数标记,T + WA

正解是直接从1枚举,逐一判断...

这TM不都是暴力吗?为什么下面那个就跑的飞快。

还有是CF757B

要在a[i]中选出尽量多的数满足gcd()!=1

我一开始是对于每个质数,判断一遍a中的数是否是它的倍数,TLE

正解是对于每个质数,看其倍数中在a数组中的个数...

可以发现第一种方法复杂度是10000 * 100000挂定了。第二种方法复杂度远小于nlogn...


可以发现就是当值域不大的时候,枚举每个数之后调和级数枚举倍数,而不是枚举a[]数组。

posted @ 2018-07-31 20:53  huyufeifei  阅读(128)  评论(0编辑  收藏  举报
试着放一个广告栏(虽然没有一分钱广告费)

『Flyable Heart 応援中!』 HHG 高苗京铃 闪十PSS 双六 電動伝奇堂 章鱼罐头制作组 はきか 祝姬 星降夜