一点优化枚举的感想
做了两道数学题。
洛谷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[]数组。