当前位置:网站首页>[hdu6868]Absolute Math(推式子+莫比乌斯反演)
[hdu6868]Absolute Math(推式子+莫比乌斯反演)
2022-04-23 06:21:00 【Zimba_】
题意:
令 f ( n ) = ∑ d ∣ n ∣ μ ( d ) ∣ f(n)=\sum_{d|n}|\mu (d)| f(n)=∑d∣n∣μ(d)∣。 T T T组询问,每组给定一个 n n n和 m m m,求 ∑ i = 1 m f ( n i ) \sum_{i=1}^{m}f(ni) ∑i=1mf(ni)。
( 1 ≤ T ≤ 1 0 4 , 1 ≤ n , m ≤ 1 0 7 ) (1\leq T\leq 10^{4},1\leq n,m\leq 10^{7}) (1≤T≤104,1≤n,m≤107)
推导:
首先根据莫比乌斯函数 μ ( n ) \mu (n) μ(n)的定义式可以知道,当 n n n存在平方因子时, ∣ μ ( n ) ∣ = 0 |\mu (n)|=0 ∣μ(n)∣=0,否则 ∣ μ ( n ) ∣ = 1 |\mu (n)|=1 ∣μ(n)∣=1。
所以 f ( n ) f(n) f(n)表示的是 n n n的因子中,不存在平方因子的因子个数。
我们将 n n n的质因子全部找出来,因为不能有平方因子,所以每个质因子的次数要么为 0 0 0,要么为 1 1 1。就得到了 f ( n ) = 2 w ( n ) f(n)=2^{w(n)} f(n)=2w(n),其中 w ( n ) w(n) w(n)表示 n n n有多少个不同的质因子。
根据上面推出来的式子,可以发现 f ( a b ) = f ( a ) f ( b ) f ( g c d ( a , b ) ) = 2 w ( a ) + w ( b ) − w ( g c d ( a , b ) ) f(ab)=\frac{f(a)f(b)}{f(gcd(a,b))}=2^{w(a)+w(b)-w(gcd(a,b))} f(ab)=f(gcd(a,b))f(a)f(b)=2w(a)+w(b)−w(gcd(a,b))。
弄出了 g c d gcd gcd之后,我们考虑莫比乌斯反演,就要先把 g c d gcd gcd提出来,原式就变成。
∑ i = 1 m f ( n i ) = ∑ g = 1 m i n ( n , m ) 2 − w ( g ) ∑ i = 1 m 2 w ( n ) + w ( i ) [ g = g c d ( n , i ) ] \sum_{i=1}^{m}f(ni)=\sum_{g=1}^{min(n,m)}2^{-w(g)}\sum_{i=1}^{m}2^{w(n)+w(i)}[g=gcd(n,i)] i=1∑mf(ni)=g=1∑min(n,m)2−w(g)i=1∑m2w(n)+w(i)[g=gcd(n,i)]
现在开始莫比乌斯反演,令 y ( g ) = ∑ i = 1 m 2 w ( n ) + w ( i ) [ g = g c d ( n , i ) ] y(g)=\sum_{i=1}^{m}2^{w(n)+w(i)}[g=gcd(n,i)] y(g)=∑i=1m2w(n)+w(i)[g=gcd(n,i)]。
然后令 Y ( d ) = ∑ d ∣ g y ( g ) Y(d)=\sum_{d|g}y(g) Y(d)=∑d∣gy(g),即,
Y ( d ) = ∑ d ∣ g ∑ i = 1 m 2 w ( n ) + w ( i ) [ g = g c d ( n , i ) ] = ∑ i = 1 m ∑ d ∣ n ∑ d ∣ i 2 w ( n ) + w ( i ) Y(d)=\sum_{d|g}\sum_{i=1}^{m}2^{w(n)+w(i)}[g=gcd(n,i)]=\sum_{i=1}^{m}\sum_{d|n}\sum_{d|i}2^{w(n)+w(i)} Y(d)=d∣g∑i=1∑m2w(n)+w(i)[g=gcd(n,i)]=i=1∑md∣n∑d∣i∑2w(n)+w(i)
则有 y ( g ) = ∑ g ∣ d μ ( d / g ) Y ( d ) y(g)=\sum_{g|d}\mu (d/g)Y(d) y(g)=∑g∣dμ(d/g)Y(d)。
原式就变成了,
∑ g = 1 m i n ( n , m ) y ( g ) = ∑ g = 1 m i n ( n , m ) 2 − w ( g ) ∑ g ∣ d μ ( d / g ) ∑ d ∣ n ∑ i = 1 m ∑ d ∣ i 2 w ( n ) + w ( i ) = 2 w ( n ) ∑ i = 1 m 2 w ( i ) ∑ d ∣ n ∑ d ∣ i ∑ g ∣ d 2 − w ( g ) μ ( d / g ) \sum_{g=1}^{min(n,m)}y(g)=\sum_{g=1}^{min(n,m)}2^{-w(g)}\sum_{g|d}\mu(d/g)\sum_{d|n}\sum_{i=1}^{m}\sum_{d|i}2^{w(n)+w(i)}=2^{w(n)}\sum_{i=1}^{m}2^{w(i)}\sum_{d|n}\sum_{d|i}\sum_{g|d}2^{-w(g)}\mu(d/g) g=1∑min(n,m)y(g)=g=1∑min(n,m)2−w(g)g∣d∑μ(d/g)d∣n∑i=1∑md∣i∑2w(n)+w(i)=2w(n)i=1∑m2w(i)d∣n∑d∣i∑g∣d∑2−w(g)μ(d/g)
我们令 G ( d ) = ∑ g ∣ d 2 − w ( g ) μ ( d / g ) G(d)=\sum_{g|d}2^{-w(g)}\mu(d/g) G(d)=∑g∣d2−w(g)μ(d/g),可以 o ( n l o g n ) o(nlogn) o(nlogn)预处理这个函数,然后接着化式子。
A N S = 2 w ( n ) ∑ i = 1 m 2 w ( i ) ∑ d ∣ n ∑ d ∣ i G ( d ) = 2 w ( n ) ∑ d ∣ n G ( d ) ∑ i = 1 m ∑ d ∣ i 2 w ( i ) = 2 w ( n ) ∑ d ∣ n G ( d ) ∑ i = 1 ⌊ m d ⌋ 2 w ( i d ) ANS=2^{w(n)}\sum_{i=1}^{m}2^{w(i)}\sum_{d|n}\sum_{d|i}G(d)=2^{w(n)}\sum_{d|n}G(d)\sum_{i=1}^{m}\sum_{d|i}2^{w(i)}=2^{w(n)}\sum_{d|n}G(d)\sum_{i=1}^{\lfloor \frac{m}{d} \rfloor}2^{w(id)} ANS=2w(n)i=1∑m2w(i)d∣n∑d∣i∑G(d)=2w(n)d∣n∑G(d)i=1∑md∣i∑2w(i)=2w(n)d∣n∑G(d)i=1∑⌊dm⌋2w(id)
代码:
在这里插入代码片
版权声明
本文为[Zimba_]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_43785386/article/details/108084747
边栏推荐
- PyTorch 14. Module class
- How to improve the service efficiency of the hotel without blind spots and long endurance | public and Private Integrated walkie talkie?
- Hanlp分词器(通过spark)
- Pycharm
- HQL语句的调优
- Mysql持久性的实现
- Take you to travel in space, and American photography technology provides comprehensive technical support for aerospace creative applet
- 记录一下使用v-print中遇到的问题
- Mysql的存储引擎
- manjaro安装与配置(vscode,微信,美化,输入法)
猜你喜欢
随机推荐
# 可视化常见绘图(二)折线图
枫桥学院开元名庭酒店DMR系统解决方案
VIM使用
菜菜的并发编程笔记 |(五)线程安全问题以及Lock解决方案
el-table 横向滚动条固定在可视窗口底部
海南凤凰机场智能通信解决方案
Draw margin curve in arcface
记录一下使用v-print中遇到的问题
MVCC(多版本并发控制)
quill-editor图片缩放、在一个页面使用多个富文本框、quill-editor上传图片地址为服务器地址
Wireless communication system for large-scale sports events
HuggingFace
技术小白的第一篇(表达自己)
字节跳动2020秋招编程题:根据工号快速找到自己的排名
P1390 公约数的和(莫比乌斯反演)
hql求一个范围内最大值
如何将进程绑定到指定的CPU上
记录一个查询兼容性的网站,String.replaceAll()兼容性报错
PyTorch 14. Module class
不需要破解markdown编辑工具Typora









