[CQOI2015]选数

其实可以大力反演

然后得到式子。miu函数可以用杜教筛求,然后整数分块。虽然3000组询问,,,理论一组都过不去,,,但是杜教筛还是越用越快的,可以过

(太暴力了)

题目一个关键的条件:H-L<=1e5

可以不可以把枚举公约数的范围限制在H-L之间呢?

其实有用的gcd不多

如果所有n个数都相等,那么有H-L+1种

如果不全都相等,那么最大的gcd,是H-L+1!!!也只有H-L+1种了。

简单起见

令:H->[H/K]下取整,L->[L/K]上取整

扫描二维码关注公众号,回复: 4896472 查看本文章

设f[i]表示,选择N个不全相等的数,最大公约数为i的方案数

答案就是f[1](因为全相等gcd一定不为1,不在答案内。L=1特判+1)

这样的话,i的范围就是1~H-L+1了

设x是[L,H]中是i倍数的个数,容斥:f[i]=x^N-x-f[2*i]-f[3*i]-...

所以倒推i即可。

O(lenlog(len))

利用gcd很少的事实,减少计算。

猜你喜欢

转载自www.cnblogs.com/Miracevin/p/10261982.html
今日推荐