• 莫比乌斯反演


    数论函数

    定义域为正整数、陪域为复数的函数

    (phi(x)),欧拉函数

    也写作:(varphi(x))

    含义:小于等于自己的,与自己互质的数的个数

    通式:(phi(x)=xprodlimits_{p_i}(1-dfrac{1}{p_i})),其中(p_i)(x)的质因数

    特殊性质:

    [sumlimits_{i|n}phi(i)=n ]

    举个栗子证明理解一下:

    (12)个分数

    [dfrac{1}{12},dfrac{2}{12},dfrac{3}{12},dfrac{4}{12},dfrac{5}{12},dfrac{6}{12},dfrac{7}{12},dfrac{8}{12},dfrac{9}{12},dfrac{10}{12},dfrac{11}{12},dfrac{12}{12} ]

    约分一下

    [dfrac{1}{12},dfrac{1}{6},dfrac{1}{4},dfrac{1}{3},dfrac{5}{12},dfrac{1}{2},dfrac{7}{12},dfrac{2}{3},dfrac{3}{4},dfrac{5}{6},dfrac{11}{12},dfrac{1}{1} ]

    按分母分个类

    [{dfrac{1}{1}},{dfrac{1}{2}},{dfrac{1}{3},dfrac{2}{3}},{dfrac{1}{4},dfrac{3}{4}},{dfrac{1}{6},dfrac{5}{6}},{dfrac{1}{12},dfrac{5}{12},dfrac{7}{12},dfrac{11}{12}} ]

    [12=phi(1)+phi(2)+phi(3)+phi(4)+phi(6)+phi(12) ]

    (mu(x)),莫比乌斯函数

    [mu(x)=egin{cases}1(x=1)\(-1)^k ( ext{$x$没有平方数因数,且$x$的质因数个数为$k$,即$x=prodlimits_{p_iin prime} p_i$})\0 ( ext{$x$有平方数因数})end{cases} ]

    特殊性质

    [sumlimits_{i|n}mu(i)=[n=1] ]

    (epsilon(x)),元函数

    [epsilon(x)=[x=1] ]

    (id(x)),单位函数

    [id(x)=x ]

    (I(x)),恒等函数

    [I(x)=1 ]

    也记作(1(x)=1)

    积性函数

    积性函数:对于任意互质的整数(a)(b),都有(f(ab)=f(a)cdot f(b))的函数(f)(f(1)=1)

    完全积性函数:对于任意整数(a)(b) ,都有(f(ab)=f(a)cdot f(b))的函数(f)

    以上提到的所有函数均为积性函数,其中(phi,mu)为积性函数,(epsilon,id,I)为完全积性函数

    利用积性函数的性质,我们可以进行线性筛

    狄利克雷卷积

    定义两个数论函数的狄利克雷卷积(otimes(ast))

    若$h=fast g $

    [h(n)=sumlimits_{i|n}f(i)g(dfrac{n}{i}) ]

    一定要记住这个式子

    以下性质(看看就好):

    1. 交换律:(fast g=gast f)
    2. 结合律:(fast (gast h)=(fast g)ast h)
    3. 分配律:((f+g)ast h=f ast h+gast h)
    4. ((xf)ast g=x(fast g))
    5. (epsilonast f=f)

    将上述(phi)(mu)的性质用卷积形式表示,就是

    [sumlimits_{i|n}phi(i)=niff phi ast I = id ]

    [sumlimits_{i|n}mu(i)=[n=1]iff mu ast I=epsilon ]

    莫比乌斯反演

    [g=fast I ]

    两边同时卷一个(mu)

    [gast mu=fast Iast mu=fast epsilon=f ]

    (这步转化注意使用狄利克雷卷积的性质)

    [g=fast Iiff gast mu=f ]

    用式子表示,就是

    [g(n)=sumlimits_{i|n}f(i)iff f(n)=sumlimits_{i|n}mu(dfrac{n}{i})g(i) ]

    这个式子就是莫比乌斯反演

    应用

    (以下式子可以用莫比乌斯反演推,但是我懒)

    [sumlimits_{i=1}^nsumlimits_{j=1}^m[gcd(i,j)=1] ]

    [ecause[gcd(i,j)=1]=epsilon(gcd(i,j))=sumlimits_{d|gcd}mu(d) ]

    [ ext{原式}=sumlimits_{i=1}^nsumlimits_{j=1}^msumlimits_{d|gcd}mu(d) ]

    先枚举(d),即(gcd)的因数

    [ ext{原式}=sumlimits_{d=1}^{min(n,m)}mu(d)sumlimits_{i=1}^{n}sumlimits_{j=1}^{m}[d|gcd(i,j)] ]

    [=sumlimits_{d=1}^{min(n,m)}mu(d)sumlimits_{i=1}^{leftlfloorfrac{n}{d} ight floor}sumlimits_{j=1}^{leftlfloorfrac{m}{d} ight floor}1 ]

    [=sumlimits_{d=1}^{min(n,m)}mu(d)leftlfloorfrac{n}{d} ight floorleftlfloorfrac{m}{d} ight floor ]

    注意到(leftlfloordfrac{n}{d} ight floor)只有(sqrt n)种取值,整除分块((O(sqrt n)))加上预处理(mu(O(n))),可以处理多组询问

    整除分块

    • (i)(leftlfloordfrac{n}{leftlfloordfrac{n}{i} ight floor} ight floor)这个范围内,(leftlfloordfrac{n}{i} ight floor)的值是一样的,(i)取到(leftlfloordfrac{n}{leftlfloordfrac{n}{i} ight floor} ight floor+1)时,(leftlfloordfrac{n}{i} ight floor)的值会变小

    • (leftlfloordfrac{n}{d} ight floor)只有(sqrt n)种取值

    利用这个就可以做整除分块了

    对于这个式子(sumlimits_{d=1}^{min(n,m)}mu(d)leftlfloorfrac{n}{d} ight floorleftlfloorfrac{m}{d} ight floor)

    (i-min(leftlfloordfrac{n}{leftlfloorfrac{n}{i} ight floor} ight floor,leftlfloordfrac{m}{leftlfloorfrac{m}{i} ight floor} ight floor))的范围内,(leftlfloordfrac{n}{d} ight floorleftlfloordfrac{m}{d} ight floor)的值不变

    (r=min(leftlfloordfrac{n}{leftlfloorfrac{n}{i} ight floor} ight floor,leftlfloordfrac{m}{leftlfloorfrac{m}{i} ight floor} ight floor))

    那么这一段内的和就是(leftlfloordfrac{n}{d} ight floorleftlfloordfrac{m}{d} ight floorcdot sumlimits_{j=i}^{r}mu(j))

    (mu)求一下前缀和,即可(O(1))算出(i-r)的和

    inline long long solve(int n,int m){
    	long long ans=0;
    	for(int i=1,r;i<=min(n,m);i=r+1){
    		r=min(n/(n/i),m/(m/i));
    		ans+=1ll*(n/i)*(m/i)*(musum[r]-musum[i-1]);
    	}
    	return ans;
    }
    
  • 相关阅读:
    (转)matlab 字符串处理函数
    (原)不明白JNI指针调用顺序
    (转)几种平均数的关系:
    (原+转)继承与虚函数
    (原)给定输入,输出全排列
    (转)发现两个有用的C函数_alloca()、_msize()
    (原)android的JNI中使用C++的类
    (原+转)C++中的const修饰符
    (转)C/C++中static关键字
    JAVA IO 对象流
  • 原文地址:https://www.cnblogs.com/harryzhr/p/14196680.html
Copyright © 2020-2023  润新知