《莫比乌斯函数求解gcd问题》

参考自:https://www.luogu.com.cn/blog/An-Amazing-Blog/mu-bi-wu-si-fan-yan-ji-ge-ji-miao-di-dong-xi

对于莫比乌斯函数gcd的问题:

可以有$|gcd(i,j) = 1| = \sum_{d|gcd(i,j)}^{} \mu (d) ( n < m)$

可以由莫比乌斯函数的原型推得,具体不推了,很简单的代换。

那么就可以求解$\sum_{i = 1}^{n}\sum_{j = 1}^{m} |gcd(i,j) = 1|$

我们把上面的那个公式代入,即可得$\sum_{i = 1}^{n}\sum_{j = 1}^{m} \sum_{d | gcd(i,j)}^{}\mu (d)$

这里我们再进一步化简,显然我们可以考虑枚举d,d - [1,n]

那么,因为gcd(i,j)要是d的倍数,那么说明i,j都是d的倍数,即可得$\sum_{d = 1}^{n} \sum_{d | i}^{}\sum_{d | j}^{}\mu (d)$

考虑进一步化简,因为在1 ~ n内,满足是d的倍数的数只有n / i个,在1 ~ m内,满足是d的倍数的数只有m / i个。

所以可以变换得到$\sum_{d = 1}^{n}\mu (d) * [\frac{n}{d}] * [\frac{m}{d}]$

至此,我们可以做到O(n)的复杂度了。

但是我们看后面的式子,很显然就是一个整除分块。

所以我们可以去优化后面的乘积为整除分块。

对于两个块,我们右边界取小的,保证两个块大小一致,然后两个块里的元素分别为n / L和m / L。

即可O($\sqrt{n}$)做出。

然后前面的其实就是一个莫比乌斯函数的前缀和,可以用杜教筛O($\sqrt{n}$)求出。

这样最终可以优化到O($\sqrt{n}$)来求出解。

 

求解:$\sum_{i = 1}^{n}\sum_{j = 1}^{m}|gcd(i,j) = k|(n < m)$

我们除去一个k得,$\sum_{i = 1}^{[\frac{n}{k}]}\sum_{j = 1}^{[\frac{m}{k}]}|gcd(i,j) = 1|(n < m)$

那么就和上面那个递推一样了。

 

求解:$\sum_{i = 1}^{n}\sum_{j = 1}^{m}i * j * |gcd(i,j) = k|$

同理,除以k可得$\sum_{i = 1}^{[\frac{n}{k}]}\sum_{j = 1}^{[\frac{m}{k}]}\frac{i}{k} *  \frac{j}{k} * |gcd(i,j) = 1|$

化简得$\sum_{i = 1}^{[\frac{n}{k}]}\sum_{j = 1}^{[\frac{m}{k}]}i * j * k ^{2} * |gcd(i,j) = 1|$

再化简得$\sum_{i = 1}^{[\frac{n}{k}]}\sum_{j = 1}^{[\frac{m}{k}]}i * j * k ^{2} * \sum_{d | gcd(i,j)}^{} \mu (d)$

考虑枚举d,然后因为满足d | gcd(i,j),所以直接枚举d的倍数i,j即可。

那么就是$k ^ {2}\sum_{d = 1}^{[\frac{n}{k}]} \mu (d)\sum_{i = 1}^{[\frac{n}{kd}]} \sum_{j = 1}^{[\frac{m}{kd}]} id * jd$

上式中因为我们枚举的是倍数i,j,所以值应该是id和jd。

再变形一下得$k ^ {2}\sum_{d = 1}^{[\frac{n}{k}]} \mu (d) * d^{2} \sum_{i = 1}^{[\frac{n}{kd}]} i \sum_{j = 1}^{[\frac{m}{kd}]} j$

观察可以发现后面两项就是等差数列求和,可以O(1)求出。

那么对于前面的莫比乌斯函数,杜教筛筛出前缀和即可,O($\sqrt{n}$)

那么总复杂度就是O($\sqrt{n}$)

 

求解:$\sum_{i = 1}^{n}\sum_{j = 1}^{m} f(i*j)$

定义f(i*j)为求解i * j的因子个数 

有推论:

$\sum_{i = 1}^{n}\sum_{j = 1}^{m} f(i,j) \Rightarrow \sum_{x | i}^{}\sum_{y | j}^{} | gcd(x,y) = 1|$

那么就是求解后面那个东西,直接把最上面的变形套入即可求解。

posted @ 2020-10-14 22:30  levill  阅读(242)  评论(0编辑  收藏  举报