$BZOJ$2818 $gcd$ 莫比乌斯反演/欧拉函数
正解:莫比乌斯反演/欧拉函数
解题报告:
一步非常显然的变形,原式=$\sum_{d=1,d\in prim}^{n}\sum_{i=1}^{n}\sum_{j=1}^{n}[gcd(i,j)==d]$
后面那个就莫比乌斯反演入门题辣$QwQ$?
就变成$\sum_{p=1}^{n}[p\mbox{为质数}]\sum_{d=1}^{n/p}\mu(d)\lfloor \frac {n/p}{d}\rfloor^2$
十分套路的,后面显然可以数论分块,就变成了$\sum_{p=1}^{n}[p\mbox{为质数}] cal(\lfloor\frac{n}{p}\rfloor)$
于是前面就也能数论分块?考虑再前缀和一个质数个数.然后把前面也数论分块.
也就做两次数论分块,然后复杂度是$O(n)$的$QwQ$
$over$!
然后另一个方法其实$easy$蛮多$QwQ$
你考虑到化出的第一个式子去,显然能想到变形成$\sum_{d=1,d\in prim}^{n}\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}[gcd(i,j)==1]$
看到后面这个,联想到欧拉函数,发现$\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}[gcd(i,j)==1]$的答案其实也就$\lfloor\frac{n}{d}\rfloor$内的欧拉函数前缀和乘二减一?(乘二是因为交换顺序嘛,减一是因为算重了$(1,1)$这一对嘛$QwQ$
就$easy$些$QwQ$
代码可以去看加强版
随机推荐
- mybatis-generator1.3.6的使用
下载地址: http://blog.mybatis.org/2017/12/mybatis-generator-version-136-released.html 参考了 http://blog.cs ...
- 错误处理——According to TLD or attribute directive in tag file, attribute test does not accept any expres
应用部署运行的时候出现JSP异常, 发生在使用JSTL库的时候: According to TLD or attribute directive in tag file, attribute valu ...
- 容器安全拾遗 - Rootless Container初探
摘要: Docker和Kubernetes已经成为企业IT架构的基础设施,安全容器运行时越来越被关注.近期Docker 19.03中发布了一个重要的特性 “Rootless Container”,在提 ...
- day6_python之json序列化和反序列化
json作用:用来保存当前状态 1.使用json.dumps序列化把dic字典存到文件中 dic={'name':'egon','age':18} print(json.dumps(dic)) #得到 ...
- Laravel5使用ElasticSearch
https://blog.csdn.net/qq_16829085/article/details/80725125 安装elasticsearch和ik插件 (elasticsearch的使用需要配 ...
- JavaScript 数组去重和对象相等判断
前几天电话面试问到了数组去重和两个对象相等判断,当时回答的不是特别好,都过去好几天了,总结下. 1.数组去重 当时的问题是这样的有个简单的数组[1,1,2,3],去重后的结果是[1,2,3],怎么实现 ...
- laravel validate 设置为中文(验证提示为中文)
把 resources\lang 下en 的文件夹 复制在同一目录并改名为 zn 把zn 中的 validation.php文件修改为 https://laravel-china.org/articl ...
- laravel中将session由文件保存改为数据库保存
1.laravel中默认是使用文件保存session的,保存在/storage/framework/sessions下 2.修改配置文件 config/session.php中 'driver' =& ...
- Python--day61--Django ORM单表操作之展示用户列表
user_list.html views.py 项目的urls.py文件
- Python--day23--初识面向对象复习
面向对象编程是大程序编程思想: