以下内容均来自TA爷课件,我只是改了几个小的地方qwq
关于除法
-
⌊ni⌋
⌊
n
i
⌋
只有
O(n−−√)
O
(
n
)
种取值。
2.对于 i i ,是与i被n除并下取整取值相同的一段区间的右端点。
3.一个很有用的性质: ⌊nab⌋=⌊⌊na⌋b⌋=⌊⌊nb⌋a⌋ ⌊ n a b ⌋ = ⌊ ⌊ n a ⌋ b ⌋ = ⌊ ⌊ n b ⌋ a ⌋
上取整也有3所述的性质。
积性函数
完全积性:不要求 (a,b)=1。 ( a , b ) = 1 。
考虑时一般会考虑成
当 f f 不是0的常值函数时,。
积性函数的狄利克雷前缀和也是积性函数 1。
两个积性函数的狄利克雷卷积也是积性函数。
积性函数可以线性筛出。线筛可以找到每个数 x x 的最小质因子及其次数 k1 k 1 。如果我们能以较小的代价 O(1) O ( 1 ) 求出 f(pk11) f ( p 1 k 1 ) ,便可以线筛了。
初等积性函数 μ μ
栗子:给定, m m ,求,不用 μ μ 怎么做?
容斥!设dp数组为当
n=i,m=j
n
=
i
,
m
=
j
时的答案。
时间复杂度 O(∑i=1⌊n√⌋(⌊ni⌋−−−√+i√))=O(n34) O ( ∑ i = 1 ⌊ n ⌋ ( ⌊ n i ⌋ + i ) ) = O ( n 3 4 )
那么
μ
μ
是什么?就是容斥系数!
μ μ 显然是一个积性函数。
莫比乌斯反演
回到栗子:
当然这样还是做不了。。。
所以我们需要杜教筛!(后面再说吧。。)
不过大多数
μ
μ
的题(第一步)这么化,所以这个式子还是比较重要的。
初等积性函数
φ(n)=1~n与n互质的数的个数φ(n)=1~n与n互质的数的个数
所以由定义便可直接写出:
这样就可以线筛出来了,而且可以看出 φ φ 是一个积性函数。
从刚才的式子可以看出,完全可以用 μ μ 代替,那么我们为什么需要呢?
很大一部分原因是它定义比较直观,比较容易想到。
φ φ 的性质:
栗子:求
杜教筛
求
直接求不好求,但是我们有
化一下蛤:
核心思想是枚举约数,这样就可以递推/递归求解了。
时间复杂度 O(n34) O ( n 3 4 ) 。
但是注意到当 n n 比较小的时候其实我们可以线筛出来。
所以我们考虑分类讨论,线筛出≤B的,>B的递推。
时间复杂度 O(B+∑i=1nBni−−√)=O(B+nB√) O ( B + ∑ i = 1 n B n i ) = O ( B + n B )
求导一下可知在 B=n23 B = n 2 3 时取得最小值 O(n23) O ( n 2 3 ) 。
回到栗子:这样的话最初的栗子就会做了吧~
注意到杜教筛的时候不仅是求出了 ∑j=1nμ(j) ∑ j = 1 n μ ( j ) ,还顺便求出了所有的 ∑j=1⌊ni⌋μ(j) ∑ j = 1 ⌊ n i ⌋ μ ( j ) ,所以可以和普通的枚举除法完美契合。
那么怎么求
∑i=1nφ(i)
∑
i
=
1
n
φ
(
i
)
?
转自:https://www.cnblogs.com/abclzr/p/6242020.html
- 不明白的地方。 ↩