来补补初二没学透的坑
引入:
\(\mu (n)\) 为莫比乌斯函数
定义:
重要性质:
其中 \([n=1]\) 表示当n等于1时,值为1,否则为0
证明:
\[\sum_{i=2k+1}^{i<=n} = \sum_{i=2k}^{i<=n},\ k\in N
\]
不就搞定了嘛
我们再定义:
\[F(n)=\sum_{d|n} f(d)
\]
那么我们可以推得:
\[f(n)=\sum_{d|n} \mu(d)F(\frac{n}{d})
\]
证明:
\[\sum_{d|n} \mu(d)F(\frac{n}{d})\ =\ \sum_{d|n}(\mu(d) \sum_{i|\frac{n}{d}}f(i)) =\ \sum_{i|n}(f(i)\sum_{d|\frac{n}{i}}\mu(d))
\]
根据重要推论,只有当 \(i=n\) 时 \(\sum_{d|\frac{n}{i}}\mu(d)=\mu(1)=1\)
得证。
还有另一种形式:\(F(n)=\sum_{n|d} f(d)\)
就会推得 \(f(n)=\sum_{n|d}\mu(\frac{d}{n})F(d)\)
证明:
\[\sum_{n|d}\mu(\frac{d}{n})F(d)=\sum_{n|d}(\mu(\frac{d}{n})\sum_{d|i} f(i)))=\sum_{n|i}(f(i)\sum_{j|\frac{i}{n}}\mu(j))=f(n)
\]
得证
例题:
分析:
根据 \(\sum_{d|n} \mu (d)=[n=1]\)
可得 \(\sum_{d|gcd(i,j)} \mu (d)=[gcd(i,j)=1]\)
题目无非让我们求:
\[\sum_{k\in prime}\sum_i^n\sum_j^m [gcd(i,j)=k]
\]
推导一下:(我们这里为了方便,定义 \(n<m\))
\[\sum_{k\in prime}\sum_i^{\lfloor\frac{n}{k}\rfloor}\sum_j^{\lfloor\frac{m}{k}\rfloor} [gcd(i,j)=1]
\]
\[\sum_{k\in prime}\sum_i^{\lfloor\frac{n}{k}\rfloor}\sum_j^{\lfloor\frac{m}{k}\rfloor} \sum_{d|gcd(i,j)} \mu (d)
\]
\[\sum_{k\in prime}\sum_{d=1}^{\lfloor\frac{n}{k}\rfloor}\mu(d)·{\lfloor \frac{n}{kd} \rfloor}·{\lfloor \frac{m}{kd} \rfloor}
\]
我们令 \(T=kd\)
\[\sum_{k\in prime}\sum_{d=1}^{\lfloor\frac{n}{k}\rfloor}\mu(d)·{\lfloor \frac{n}{T} \rfloor}·{\lfloor \frac{m}{T} \rfloor}
\]
枚举T
\[\sum_{T=1}^n{\lfloor \frac{n}{T} \rfloor}{\lfloor \frac{m}{T} \rfloor}\sum_{k\in prime,k|T} \mu(\frac{T}{k})
\]
后面一个sum可以用前缀和优化,前面一个可以用整除分块优化
得证
of course,既然我们是来学习莫比乌斯反演的,就应该用反演好好推一下
我们按套路设 \(f(N)\) 为 \(gcd(i,j)=N\) 的个数,\(F(N)\) 为 \(gcd(i,j)=kN\)的个数
\[f(N)=\sum_{i=1}^n\sum_{j=1}^m\ [gcd(i,j)=N]
\]
\[F(N)=\sum_{N|d}f(d)={\lfloor \frac{n}{N} \rfloor}{\lfloor \frac{m}{N} \rfloor}
\]
根据反演得:
\[f(N)=\sum_{N|d} \mu (\frac{d}{N}) F(d)
\]
针对本题:
\[ans=\sum_{k\in prime}\sum_i^n\sum_j^m [gcd(i,j)=k]
\]
\[ans=\sum_{k\in prime}f(k)
\]
\[ans=\sum_{k\in prime}\sum_{k|d} \mu (\frac{d}{k}) F(d)
\]
\[ans=\sum_{k\in prime}\sum_{k|d} \mu (\frac{d}{k}){\lfloor \frac{n}{d} \rfloor}{\lfloor \frac{m}{d} \rfloor}
\]
\[ans=\sum_{k\in prime}\sum_{d=1}^{\lfloor \frac{n}{k} \rfloor}\mu(d){\lfloor \frac{n}{kd} \rfloor}{\lfloor \frac{m}{kd} \rfloor}
\]
然后就一样了,是不是很妙
代码
F与f函数的设置和上一题相同
针对本题:
\[ans=\sum_i^n\sum_j^m [gcd(i,j)=N]=f(N)
\]
\[ans=\sum_{N|d} \mu (\frac{d}{N}) F(d)
\]
\[ans=\sum_{N|d} \mu (\frac{d}{N}){\lfloor \frac{n}{d} \rfloor}{\lfloor \frac{m}{d} \rfloor}
\]
\[ans=\sum_{k=1}^{\frac{n}{N}} \mu (k){\lfloor \frac{n}{Nk} \rfloor}{\lfloor \frac{m}{Nk} \rfloor}
\]
令 \(dn=\frac{n}{N}\) , \(dm=\frac{m}{N}\)
怎么好像比上一题还简单(
代码
如果我们先不考虑 \(a\) 的限制
显然答案为
\[\sum_{i=1}^n \sum_{j=1}^m \sigma(gcd(i,j))
\]
考虑枚举约数
\[\sum_{N=1}\sigma(N)\sum_{i=1}^n \sum_{j=1}^m [gcd(i,j)=N])
\]
套路一下:
\[f(N)=\sum_{i=1}^n \sum_{j=1}^m [gcd(i,j)=N]
\]
\[F(N)=\sum_{N|d}f(d)=\lfloor{\frac{n}{N}}\rfloor \lfloor{\frac{m}{N}}\rfloor
\]
\[f(N)=\sum_{N|d}\mu(\frac{d}{N})F(d)
\]
所以答案变成:
\[\sum_{N=1}\sigma(N)\sum_{N|d}\mu(\frac{d}{N})\lfloor{\frac{n}{d}}\rfloor \lfloor{\frac{m}{d}}\rfloor
\]
因为我们求的是多个因数的和,所以就不像前两题那样转换成枚举倍数
我们直接将 \(d\) 提出来
\[\sum_{d=1}\lfloor{\frac{n}{d}}\rfloor \lfloor{\frac{m}{d}}\rfloor\sum_{N|d}\mu(\frac{d}{N})\sigma(N)
\]
没有 \(a\) 的限制,我们就做完了
有 \(a\) 的限制,我们考虑将询问离线下来,按 \(a\) 排序
我们就每次扩大 \(a\) ,将 \(<=a\) 的 \(\sigma(N)\) 进行贡献
考虑使用树状数组完成,枚举 \(N\) 的倍数,加入到 \(tr[d=kN]\) 中
记得先将求得的 \(\sigma\) 进行排序,且 \(\sigma(1)=1\)
代码
给出贺到的公式:
\[d(ij)=\sum_{x|i}\sum_{y|j} [gcd(x,y)=1]
\]
严格证明的话,真就不会了
给一种感性的证明:
考虑一个质因子 \(p_i\) ,\(i\) 最大为 \(p_i^a\) ,\(j\) 最大为 \(p_i^b\) ,\(ij\) 的个数对 \(d(ij)\) 应为 \((a+b+1)\)
等式左边,如果因子从 \(x\) 选,那么 \(y\) 就不能选这个因子(因为要互质),就是 \(a\) 种情况,同理从 \(y\) 选就有 \(b\) 种情况,都不选又是 1 种情况,一共也是 \((a+b+1)\)
行,就当他成立吧(OIer从来都是只记结论的)
答案转换为:
\[\sum_{i=1}^n\sum_{j=1}^m\sum_{x|i}\sum_{y|j} [gcd(x,y)=1]
\]
套公式:
\[\sum_{i=1}^n\sum_{j=1}^m\sum_{x|i}\sum_{y|j}\sum_{k|gcd(x,y)} \mu(k)
\]
改成枚举 \(x\) , \(y\)
\[\sum_{x=1}^n\sum_{y=1}^m\sum_{i=1}^{\frac{n}{x}}\sum_{j=1}^{\frac{m}{y}} \sum_{k|gcd(x,y)} \mu(k)
\]
\(k\) 提出
\[\sum_{k=1}^n \mu(k)\sum_{x=1}^{\frac{n}{k}}\sum_{y=1}^{\frac{m}{k}} \lfloor{\frac{n}{kx}}\rfloor \lfloor{\frac{m}{ky}}\rfloor
\]
令 \(g(n)=\sum_{x=1}\lfloor{\frac{n}{x}}\rfloor\) (\(O(n\sqrt{n})\)同样使用数值分块预处理),答案变成:
\[\sum_{k=1}^n \mu(k) g(\lfloor{\frac{n}{k}}\rfloor) g(\lfloor{\frac{m}{k}}\rfloor)
\]
再按套路,用数值分块实现
\[\sum_{i=1}^n \sum_{j=1}^m \frac{ij}{gcd(i,j)}
\]
\[\sum_{d=1}^n d\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor} ij[gcd(i,j)=1]
\]
\[\sum_{d=1}^n d\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor} ij\sum_{k|gcd(i,j)}\mu(k)
\]
\[\sum_{d=1}^n d\sum_{k=1}^{\lfloor\frac{n}{d}\rfloor}\mu(k)k^2\sum_{i=1}^{\lfloor\frac{n}{kd}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{kd}\rfloor} ij
\]
\[\sum_{d=1}^n d\sum_{k=1}^{\lfloor\frac{n}{d}\rfloor}\mu(k)k^2(\sum_{i=1}^{\lfloor\frac{n}{kd}\rfloor}i)(\sum_{j=1}^{\lfloor\frac{m}{kd}\rfloor} j)
\]
设 \(g(x)=\sum_{i=1}^x i\)
则原式为:
\[\sum_{d=1}^n d\sum_{k=1}^{\lfloor\frac{n}{d}\rfloor}\mu(k)k^2 g(\lfloor\frac{n}{kd}\rfloor)g(\lfloor\frac{m}{kd}\rfloor)
\]
显然可以用分块套分块来做