[CQOI2015]选数
[CQOI2015]选数 从[L,H]中可重复地选出N个数,问其gcd等于K的方案 \(mod\ 10^9+7\) ,1<=N,K<=10^9,1<=L<=H<=10^9,H-L<=10^5。 解 法一:直接 转换为Mobius问题,不难有 \[ans=\sum_{i_1=L}^H\sum_{i_2=L}^H...\sum_{i_N=L}^H(gcd(i_1,i_2,...,i_N)==k)\] 于是设 \[f(k)=\sum_{i_1=L}^H\sum_{i_2=L}^H...\sum_{i_n=L}^H(gcd(i_1,i_2,...,i_n)==k)\] \[F(k)=\sum_{i_1=L}^H\sum_{i_2=L}^H...\sum_{i_N=L}^H(k|gcd(i_1,i_2,...,i_N))=([\frac{H}{k}]-[\frac{L-1}{k}])^N\] 由Mobius反演定理代入有 \[ans=\sum_{k|d}([\frac{H}{d}]-[\frac{L-1}{d}])^N\mu(d/k)=\] \[\sum_{d=1}^{[H/k]}([\frac{H}{dk}]-[\frac{L-1}{dk}])^N\mu(d)\] 显然左式可以整除分块,而至于后式只需要快速维护其前缀和,注意到N很大,于是用杜教筛优化即可。 参考代码: #include