[探究] $\mu$函数的性质应用
参考的神仙An_Account
的blog,膜一下。
其实就是一类反演问题可以用\(\mu\)函数的性质直接爆算出来。
然后其实性质就是一个代换:
\[\sum_{d|n}\mu(d)=[n=1]\]
问题一:求
\[\sum_{i=1}^n\sum_{j=1}^m[i \perp j]\]
……然而其实就是
\[\sum_{i=1}^n\sum_{j=1}^m\sum_{d|\gcd(i,j)}\mu(d)\]
考虑\(d|\gcd(i,j)\)就是\(d|i,d|j\),于是可以枚举\(d\)。
\[\sum_{d=1}^{\min(n,m)}\mu(d)\cdot \lfloor\frac{n}{d}\rfloor\cdot \lfloor\frac{m}{d}\rfloor\]
这东西就可以直接分块。
问题二:求
\[\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=k]\]
然而根据一个定理:
\[\gcd(i,j)=k\Longrightarrow\gcd(\frac{i}{k},\frac{j}{k})=1\]
于是就变成了:
\[\sum_{i=1}^{\lfloor\frac{n}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{k}\rfloor}[i \perp j]\]
问题三:求
\[\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=k],k\in\rm{Prime}\]
我们考虑现在的柿子其实长这样:
\[\sum_{k\in \rm{Prime}}\sum_{d=1}^{\min(\lfloor\frac{n}{k}\rfloor,\lfloor\frac{m}{k}\rfloor)}\mu(d)\cdot \lfloor\frac{n}{kd}\rfloor\cdot \lfloor\frac{m}{kd}\rfloor\]
一个思想就是不断把重复求和的东西提到前面去。我们发现似乎带有\(kd\)的几项被重复求和,效率很低。同时因为\(O(kd)=O(n)\),所以改成先枚举\(kd\):
\[\begin{aligned}p=kd\\ \sum_{p=1}^{\min{(n,m)}}\end{aligned}\lfloor\frac{n}{p}\rfloor\cdot \lfloor\frac{m}{p}\rfloor\sum_{d|p}\mu (d)\]
然后显然后面的那个\(\sum\)是可以预处理的,于是就还是\(O(\sqrt n)\)的分块。
后面的择日应该会学一学= =?
最新文章
- ElasticSearch第一步-环境配置
- Apache rewrite
- R语言实战(三)基本图形与基本统计分析
- JSON.stringify()、JSON.parse()和eval(string)
- java实现httpclient 访问
- ANDROID_MARS学习笔记_S05_005_方向传感器
- [C#] 常用工具类——应用程序属性信息访问类
- Delphi下实现全屏快速找图找色
- 在opensips中记录通话记录
- 【JavaScript for循环实例】
- homebrew 无法安装提示不能在根目录下使用
- Java编程的逻辑 (51) - 剖析EnumSet
- 2018-11-06 Visual Studio Code插件-英汉词典初版发布
- [SQL]Temporal 异常处理经验
- MFC笔记7
- 部署php的正确姿势
- 数据分箱:等频分箱,等距分箱,卡方分箱,计算WOE、IV
- Ubuntu16.04下编译安装及运行单目ORBSLAM2
- [转] Ubuntu 14.04/14.10下安装VMware Workstation 11图文教程
- EF Core 入门