这两天做了一些莫比乌斯反演的题,现在来稍微总结一下

双亲数

大意:

思路:

将d移到判断式的外面去,

原式=

加上莫比乌斯函数的性质

原式可以继续化为

改为枚举d,可以继续化成

注意到这里后面两坨东西我们是可以用分块来处理的,因为u(k)我们可以去处理出来,那么只要找到每一段相同区间里的u(k)函数的一段前缀和即可

关于莫比乌斯函数的预处理,可以通过欧拉筛来实现,这里贴个板子

void moblus()
{  memset(vis,0,sizeof vis);mu[1]=1; for(int i=2;i<=N;i++)  {  if(!vis[i]){p[++cnt]=i;mu[i]=-1;} for(int j=1;j<=cnt&&i*p[j]<=N;++j){  vis[i*p[j]]=1;if(i%p[j]==0){mu[i*p[j]]=0;break; } else mu[i*p[j]]=-mu[i]; }  }
}

其它的就没什么好说的了

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll N=1e6+10;
ll a,b,d;
ll ans=1;
//线性筛法求莫比乌斯函数
bool vis[N];  //标记
int p[N];  //质数
int mu[N];//打表结果
ll cnt=0;
void moblus()
{  memset(vis,0,sizeof vis);mu[1]=1; for(int i=2;i<=N;i++)  {  if(!vis[i]){p[++cnt]=i;mu[i]=-1;} for(int j=1;j<=cnt&&i*p[j]<=N;++j){  vis[i*p[j]]=1;if(i%p[j]==0){mu[i*p[j]]=0;//合数break; } else mu[i*p[j]]=-mu[i]; }  }
}
ll f(ll n,ll m)
{n/=d;m/=d;ll ans=0;for(ll l=1,r=1;l<=min(n,m);l=r+1) {r=min(n/(n/l),m/(m/l));ans+=(mu[r]-mu[l-1])*(n/l)*(m/l);}return ans;
}int main()
{cin>>a>>b>>d;//ans=a/d*(b/d);moblus();ll n=min(a,b);for(int i=1;i<=n;++i) mu[i]+=mu[i-1];ans=f(a,b);cout<<ans<<endl;return 0;
}  

再来一道狠一点的

P1390 公约数的和

大意:

思路:

如果要转到可以进行莫比乌斯反演的形式,我们可以先枚举i和j的公因子d

原式=

然后就可以转化为

=

那么如果我们令D=d*k的话,

原式可以继续改写为

中间那一坨很明显是可以转化成为欧拉函数的,

最后原式就等于

啊哈,这跟上一道题推出来的式子不是换汤不换药嘛,无非就是求莫比乌斯函数变成了求欧拉函数,基本代码完全没有上面区别

对了,因为这题求的是两两之间的数的公约数的和,不包括数字与数字本身,也不会重复计算,我们最后把这些多余的部分减掉就好了

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=2e6+10;
ll n;
ll p[N];
ll phi[N];
bool vis[N];
ll cnt=0;
inline void init()
{phi[1]=1;for(register ll i=2;i<=n;++i){if(!vis[i]) p[++cnt]=i,phi[i]=i-1;for(register ll j=1;(j<=cnt)&&(i*p[j]<=n);++j){vis[i*p[j]]=1;if(i%p[j]==0){phi[i*p[j]]=phi[i]*p[j];break;}phi[i*p[j]]=phi[i]*(p[j]-1);}}for(ll i=1;i<=n;++i) phi[i]+=phi[i-1];
//  for(int i=1;i<=n;++i) cout<<phi[i]<<' ';
}
inline void solve()
{ll ans=0;for(register ll l=1,r=1;l<=n;l=r+1){r=n/(n/l);ans+=(phi[r]-phi[l-1])*(n/l)*(n/l);}printf("%lld",(ans-n*(n+1)/2)/2);//cout<<(ans-n*(n+1)/2)/2<<endl;
}
int main()
{scanf("%lld",&n);init();solve();return 0;
}

莫比乌斯反演-小总结相关推荐

  1. 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...

  2. CCPC-Wannafly Winter Camp Day3 (Div2, onsite) F 小清新数论 欧拉函数的利用 莫比乌斯反演 杜教筛

    F - 小清新数论 做法一:欧拉函数 #include<stdio.h> #include<bits/stdc++.h> using namespace std; #defin ...

  3. 小A的数学题(莫比乌斯反演数论)

    小A的数学题(莫比乌斯反演&数论) 1.容斥 原始化简为 ∑ d = 1 n d 2 ∑ i = 1 n ∑ j = 1 m [ g c d ( i , j ) = d ] \sum\limi ...

  4. 【莫比乌斯反演】10.30破译密码

    初涉的话先留坑吧 题目大意 $\sum_{i_1}^{a_1}\sum_{i_2}^{a_2}\cdots\sum_{i_m}^{a_m}(i_1,i_2,\cdots,i_m)$ $a_i<= ...

  5. 莫比乌斯反演入门题目(详细)

    目录 luoguP2568 GCD hdu1695 GCD luogu3455[POI2007]ZAP-Queries luogu2522 [HAOI2011]Problem b P4318 完全平方 ...

  6. 专题·莫比乌斯函数与欧拉函数【including 整除分块,积性函数,狄利克雷卷积,欧拉函数,莫比乌斯函数,莫比乌斯反演

    初见安~又是好久没写博客了--加上CSP才炸了一波. 目录 一.整除分块 题解 二.积性函数 三.狄利克雷卷积 四.欧拉函数 五.莫比乌斯函数(mu) 六.莫比乌斯反演 一.整除分块 看个例题:洛谷P ...

  7. 【笔记】莫比乌斯反演(1)

    上一篇:莫比乌斯反演(0) 文章目录 莫比乌斯反演 关于反演 莫比乌斯函数 定义 性质 莫比乌斯反演公式 公式1 公式2 整除分块 引入 关于整除分块 基础推导 简单扩展 莫比乌斯反演的应用 例1:证 ...

  8. 离散数学/组合数学:序列与其对应的生成函数;多项式函数的系数与序列的联系;重复组合数的理解方法即----全1序列对应的生成函数做n重卷积(不严谨说法)之后得到的序列的x的k次方项的系数;莫比乌斯反演。

    继我所写的文章 "迭代.递归.栈.差分方程之间的本质联系以及由推广的迭代法解决"变态青蛙跳台阶"问题" 结束之后,自然的引出一个问题,就是关于如果真的给定k项之 ...

  9. 数论变换 - 莫比乌斯反演篇

    2020.8.17 今天第一次屁股坐在椅子上学莫比乌斯反演的一天.本来是想让队友学的,现在队友不知道换了多少人了,也没几个真的能靠得住的,还都得看自己.其实学到现在这个程度,除了一些极其吃天赋的问题, ...

最新文章

  1. ionic 混合应用开发
  2. 如何使用 controllerExtensions 给 SAP Fiori Elements List Report 的表格注册事件响应函数
  3. 单片机数字滤波算法如何实现?(附代码)
  4. 牛客题霸 [丑数] C++题解/答案
  5. hpux oracle9,oracle 9.2.0.8在HP-UX 11.31 下的安装步骤和注意事项
  6. 字节跳动大规模实践埋点自动化测试框架设计
  7. get请求和post请求乱码问题
  8. IOS UIImage
  9. paip.提升安全性--------用户密码控件方案总结
  10. excel图表模板免费下载_40个免费的信息图表模板下载
  11. 消费者生产者问题,哲学家问题
  12. BIP63(隐身地址)
  13. 【内部流出,勿做商用】今日教大家如何抢聚划算
  14. python中不同文件之间使用所谓的全局变量
  15. 期货开户手续费组成和最低价
  16. 超全园林 景观cc0高清摄影图片素材网站整理
  17. 测试用例设计——WEB通用测试用例(转)
  18. APP - 查询全国医院各科室排行榜(一)
  19. 软件工程网络15个人阅读作业2(201521123042 姚佳希)
  20. 线程生命周期 什么时候会出现僵死进程

热门文章

  1. win10 bat执行cmd命令
  2. 通往幸福之路之贷款篇
  3. Adobe Photoshop CC制作logo
  4. 卷积神经网络(CNN)开山之作——LeNet-5。卷积神经网络基本介绍。
  5. 基于阿里云的超级性能测试 亿级企业压力测试神器JMeter4.X实战 抗压神器JMeter课程
  6. category.php ecshop,category.php
  7. 2017年6月历史文章汇总
  8. 生物化学《第四章蛋白质》
  9. 适用于Java开发人员的微服务:持续集成和持续交付
  10. Class16:初学python之练习题