莫比乌斯反演与杜教筛

转载 2018年04月14日 22:14:38

以下内容均来自TA爷课件,我只是改了几个小的地方qwq

关于除法

  1. ni 只有 O(n) 种取值。
    2.对于inni是与i被n除并下取整取值相同的一段区间的右端点。
    3.一个很有用的性质:nab=nab=nba
    上取整也有3所述的性质。

积性函数

f(ab)=f(a)f(b),(a,b)=1

完全积性:不要求(a,b)=1
考虑时一般会考虑成
f(x)=if(piki)

f不是0的常值函数时,f(1)=1
积性函数的狄利克雷前缀和也是积性函数1
s(n)=d|nf(d)=ij=0kif(pji)

两个积性函数的狄利克雷卷积也是积性函数。
c(n)=d|na(d)b(nd)=ij=0kia(pij)b(pikij)

积性函数可以线性筛出。线筛可以找到每个数x的最小质因子p1及其次数k1。如果我们能以较小的代价O(1)求出f(p1k1),便可以线筛了。

初等积性函数μ

栗子:给定nm,求i=1nj=1m[ij],n,m<=109,不用μ怎么做?

容斥!设dp数组f(i,j)为当n=i,m=j时的答案。

f(n,m)=nmi=2min(n,m)f(ni,mi) 

时间复杂度O(i=1n(ni+i))=O(n34)

那么μ是什么?就是容斥系数!

μ(1)=1,μ(2)=1,μ(3)=1,μ(4)=0,μ(5)=1

μ(n)={0, x2|n(1)k,n=i=1kpi 

μ显然是一个积性函数。
d|nμ(d)={1,n=10,n1

莫比乌斯反演

F(n)=d|nf(d)

f(n)=d|nF(d)μ(nd)=d|nf(d)g|ndμ(g)=f(n)

F(n)=n|df(d)

f(n)=n|dF(d)μ(dn)=n|df(d)g|dnμ(g)=f(n)

回到栗子:
i=1nj=1m[ij]=i=1nj=1md|(i,j)μ(d)=d=1min(n,m)μ(d)ndmd 

当然这样还是做不了。。。
所以我们需要杜教筛!(后面再说吧。。)
不过大多数μ的题(第一步)这么化,所以这个式子还是比较重要的。

初等积性函数φ

φ(n)=1~n与n互质的数的个数φ(n)=1~n与n互质的数的个数
所以由定义便可直接写出:

φ(n)=d|nμ(d)nd=ij=0kiμ(pij)pkij=ipiki1(pi1) 

这样就可以线筛出来了,而且可以看出φ是一个积性函数。
从刚才的式子可以看出,φ完全可以用μ代替,那么我们为什么需要φ呢?
很大一部分原因是它定义比较直观,比较容易想到。

φ的性质:

d|nφ(d)=d|ndg|ndμ(g)=n 

栗子:求
i=1nj=1m(i,j)
多组数据 t,n,m<=105
ans=i=1min(n,m)φ(i)nimi 

杜教筛

i=1nμ(i) ,n1011

直接求不好求,但是我们有
i=1nd|iμ(d)=1

化一下蛤:
i=1nj=1niμ(j)=1

i=1nμ(i)=1i=2nj=1niμ(j)

核心思想是枚举约数,这样就可以递推/递归求解了。

时间复杂度O(n34)

但是注意到当n比较小的时候其实我们可以O(n)线筛出来。

所以我们考虑分类讨论,线筛出≤B的,>B的递推。

时间复杂度O(B+i=1nBni)=O(B+nB) 

求导一下可知在B=n23时取得最小值O(n23)

回到栗子:这样的话最初的栗子就会做了吧~

i=1nj=1m[ij]=i=1nj=1md|(i,j)μ(d)=d=1min(n,m)μ(d)ndmd 

注意到杜教筛的时候不仅是求出了j=1nμ(j),还顺便求出了所有的j=1niμ(j),所以可以和普通的枚举除法完美契合。

那么怎么求i=1nφ(i)

n(n+1)2=i=1nd|iφ(d)=i=1nj=1niφ(j)


转自:https://www.cnblogs.com/abclzr/p/6242020.html


  1. 不明白的地方。

我也不知道什么是"莫比乌斯反演"和"杜教筛"

Part0 最近一直在搞这些东西 做了将近20道题目吧 也算是有感而发 写点东西记录一下自己的感受 如果您真的想学会莫比乌斯反演和杜教筛,请拿出纸笔,每个式子都自己好好的推一遍,理解清楚每一...
  • qq_30974369
  • qq_30974369
  • 2018-01-17 20:10:21
  • 864

BZOJ 4176 [莫比乌斯反演][杜教筛]

DescriptionDescription求∑i=1n∑j=1nd(ij)\sum_{i = 1}^n\sum_{j = 1}^nd(ij)通过陈老师r老师等式可以的得到该式子就等于∑i=1n∑j=...
  • Vectorxj
  • Vectorxj
  • 2017-06-03 19:33:24
  • 361

【BZOJ4652】循环之美(莫比乌斯反演,杜教筛)

题解到底在求什么呢。。。 首先不管他KK进制的问题啦,真是烦死啦所以,相当于有一个分数ij\frac{i}{j} 因为值要不相等 所以有i⊥ji \perp j,也就是gcd(i,j)=1gcd...
  • qq_30974369
  • qq_30974369
  • 2018-01-17 10:01:41
  • 94

【UOJ221】【BZOJ4652】【NOI2016】循环之美(莫比乌斯反演,杜教筛)

Description 牛牛是一个热爱算法设计的高中生。在他设计的算法中,常常会使用带小数的数进行计算。牛牛认为,如果在 k 进制下,一个数的小数部分是纯循环的,那么它就是美的。现在,牛牛想知道:对...
  • hhaannyyii
  • hhaannyyii
  • 2018-03-30 22:12:48
  • 86

spring学习笔记(持续更新)

1.Spring的核心机制 依赖注入:相当于控制反转,spring中创建被调用者的工作不再由调用者完成,称为控制反转,创建被调用者实例的工作由spring容器完成,然后注入调用者,称为依赖注入。 ...
  • kiss_the_sun
  • kiss_the_sun
  • 2011-05-11 19:59:00
  • 1568

莫比乌斯反演套路1_线性筛法

线性筛法是O(n),不然它就不叫线性。
  • Cold_Chair
  • Cold_Chair
  • 2017-01-20 22:22:15
  • 440

[杜教筛] 51Nod 1238 最小公倍数之和 V3

比最大公约数之和要难搞一些 吉丽博客传送门:http://jiruyi910387714.is-programmer.com/posts/195270.html 这道题两个要点 首先 ∑1 ...
  • u014609452
  • u014609452
  • 2017-01-26 22:45:50
  • 654

bzoj 3944: Sum 杜教筛

本来以为这种东西只能O(N)线性筛,但是大千世界,无(sang)奇(xin)不(bing)有(kuang),确实存在更快的算法。        省选的时候rzz讲这种东西在国内OI称为杜教筛,用来求数...
  • lych_cys
  • lych_cys
  • 2016-03-24 20:45:40
  • 5518

[Notes] 杜教筛学习笔记

作为蒟蒻的我很羞耻的不会杜教筛 于是我开始学 可以发现 blog已经被数论函数和杜教筛刷屏了 杜教筛的学习要点by糖老师 传送门 吉丽: http://jiruyi91...
  • u014609452
  • u014609452
  • 2017-01-26 23:34:52
  • 2621

杜教筛 学习小结

今年的GDKOI居然考了反演,还要用杜教筛,狠狠的把我骇了一条, 回来在51nod上随便点开几题看起啦像是反演的题,发现都是要用杜教筛(这RP~), 好吧好吧,那就学杜教筛咯~杜教筛的套路有几个大...
  • HOWARLI
  • HOWARLI
  • 2017-03-13 12:54:39
  • 974
收藏助手
不良信息举报
您举报文章:莫比乌斯反演与杜教筛
举报原因:
原因补充:

(最多只允许输入30个字)