参考的神仙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)\)的分块。

后面的择日应该会学一学= =?

最新文章

  1. ElasticSearch第一步-环境配置
  2. Apache rewrite
  3. R语言实战(三)基本图形与基本统计分析
  4. JSON.stringify()、JSON.parse()和eval(string)
  5. java实现httpclient 访问
  6. ANDROID_MARS学习笔记_S05_005_方向传感器
  7. [C#] 常用工具类——应用程序属性信息访问类
  8. Delphi下实现全屏快速找图找色
  9. 在opensips中记录通话记录
  10. 【JavaScript for循环实例】
  11. homebrew 无法安装提示不能在根目录下使用
  12. Java编程的逻辑 (51) - 剖析EnumSet
  13. 2018-11-06 Visual Studio Code插件-英汉词典初版发布
  14. [SQL]Temporal 异常处理经验
  15. MFC笔记7
  16. 部署php的正确姿势
  17. 数据分箱:等频分箱,等距分箱,卡方分箱,计算WOE、IV
  18. Ubuntu16.04下编译安装及运行单目ORBSLAM2
  19. [转] Ubuntu 14.04/14.10下安装VMware Workstation 11图文教程
  20. EF Core 入门

热门文章

  1. python每日学习2018/1/14(python之禅)
  2. IDEA设置外部比对工具Beyond Compare
  3. 自动轮播swiper css实现
  4. DAX 第七篇:分组聚合
  5. .NET工程师的书单
  6. 【机器学习笔记】来吧!解析k-NN
  7. c# 调用接口返回json
  8. Asp.Net或WebAPI获取表单数据流(批量文件上传)
  9. Maven环境搭配及继承
  10. Docker(一) - CentOS7中安装Docker - (视频教程)