清明 DAY2

 

数论

数论是研究整数性质的东西


 

 


 

也就是

    lim   π(x)=x/ ln x 

(x->无穷)

X越大越稀疏

 

证明:

∵ p|ab

∴ ab有因子p

设 a=p1k1p2k2......prkr

     b=q1t1q2t2......qwtw

那么ab= p1k1p2k2......pr‑kr q1t1q2t2......qw‑tw

∴ p1----- qw中一定有一个P,才能使p|ab

∴ p∈{ p1p2......pr‑ q1q2......qw}

∴ p|a 或者 p|b

 

 

 

 


 

 

证明:

存在性:

假设存在N是最小的不满足质因数分解的数

    N若是素数,N=N

∴ N是合数,存在p , N=p * N/p

   此时N/p也不可以质因数分解,那么N/p就比N小,与假设矛盾,证明存在性成立

 

唯一性:

假设存在N是最小的可以分解为两种不同方式的数

那么 N= p1k1p2k2......prkr    (1)

        = q1t1q2t2......qwtw  (2)

∴ p1| q1t1q2t2......qwtw          (3)

∴ p1∈{ q1t1q2t2......qwtw }

∴ p1| q1或者p1| q2.....或者p1| qw 

∵ p1| q1,p1  q1均为素数,

∴ p1=q1

设 r1>=t1

(1)(2)同时除以p1t1

∴ p1r1 - t1......=q10.......

∴ 存在更小的可以分解为两种不同方式的数N/p1t1

   与假设矛盾,证明唯一性成立

 

 


 

 素数与筛法

 


 

证明:

ax+by=c 有整数解  =>  gcd(a,b)|c

   (充分)             (必要)

 

充分性

设d=gcd(a,b),那么d|a , d|b , 则d|ax+by=c

 

必要性

gcd(a,b)|c  =>  ax+by=c 有整数解

x,y是整数,ax+by>0

只需证出min(ax+by)=gcd(a,b)即可

 

设d=gcd(a,b)   s=min(ax+by) s>0

a/s = q.....r

r = a - qs = a - q (ax+by) =(1-qx)a - qyb

 

为了保证s最小,那么r=0,所以s|a , 同理可得s|b , 所以,s|gcd(a,b)即s|d

s=ax+by=x(nd)+y(md)   =>  d|s

 

因为s|d, d|s

所以s=d

 


 

 

PS:a%b=

 

 


 

 

 

 


 

 

 

 

 

 

 

代码:

int size;

bool erfen(int x)
{
    int l=0,r=size;
    while (l+1!=r)
    {
        int m=(l+r)>>1;
        if (z[m]>=x) r=m;
        else l=m;
    }
    return z[r]==x;
}

int bsgs(int a,int b,int p)
{
    size = sqrt(p);
    
    int nowv=1;
    for (int i=1;i<=size;i++)
    {
        nowv = (long long)nowv * a%p;
        z[i] = nowv;
        if (z[i] == b) return i;  //如果在列举第一行 已经找到了i,直接返回
    }
    sort(z+1,z+size+1);
    for (int i=2;(i-1)*size+1 <= p;i++)
    {
        int y = (long long)b * kuaisumi(kuaisumi(a,size*(i-1),p),p-2,p);          //快速幂套快速幂    从后往前找,乘以逆元 
        if (erfen(y))   //发现x在这一行,暴力枚举一下
        {
            for (int j=(i-1)*size+1;j<=i*size;j++)
                if (kuaisimi(a,j,p) == b) return j;
        }
    }
    return -1;
}

 

 


 


数论函数

 带入一个正整数,输出一个整数

         f(x)=y

 x是正整数,y是整数

 

 

 

 

 

           μ(x)

 

把x质因数分解:x=p1r1p2r2.......pkrk

令r = max { r1 , r2 , .... rk }

 

                 1  ( x=1 )

μ(x)=    0  ( r >1 )

               (-1)k   ( r=1)

( k 表示 x 有k 个质因子)

 

举个栗子:

μ(4)=0;   μ(15)=1;   μ(1001)=-1

莫比乌斯函数是一个数论函数,它同时也是一个积性函数(i.e.μ(ab) =μ(a)μ(b), a,b互质)

 

 

当n不等于1时,n所有因子的莫比乌斯函数值的和为0   (d是n的因子)

 

举个栗子:

F(6)= f (1) + f (2) + f(3)+ f (6);

  f (6) = F(1)μ(6)+ F(2)μ(3)+ F(3)μ(2)+ F(6)μ(1)

 

证明一下:

∑  μ(d)F(n/d) = ∑   μ(d)  ∑    f (d`)

d|n                        d|n           d`|n/d

                          = ∑        ∑     μ(d)f (d`)                        //交换求和符号   常用技能

                            d|n     d`|n/d

                          = ∑        ∑      μ(d)f (d`)

                            d`|n     d|n/d`

                          = ∑    [  f (d`)   ∑   μ(d) ]

                            d`|n            d|n/d`

                          = f ( n )

 大概就是这样

 

 

举个栗子:

设f(n)=n    g(x)=Φ(n)

那么(f*g)(12) = f(12)*g(1)  +  f(6)*g(2)  +  f(4)*g(3)

                          + f(3)*g(4)  +  f(2)*g(6)  +  f(1)*g(12)

                          = 12*1  +  6*1  +  4*2  +  3*2  +  2*2  +  1*4

 

 

枚举较小的因子

不再枚举1-i的所有因子

而是枚举i的两个因子  降低复杂度

 

PS:J是i的下一个因子

 

 

 

 

 看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦看题啦

   [ 1 <= x <= c , 1 <= y <= d ]

 - [ 1 <= x <= a , 1 <= y <= d ]

  - [ 1 <= x <= c , 1 <= y <= b ]

+ [ 1 <= x <= a , 1 <= y <= b ]

 

换个写法

如果括号里为真返回1 ,否则0

当然不可以从1-n,1-m都枚举一遍

  n   m

∑   ∑ [ gcd ( i , j )=1 ]

i=1   j=1

 

  n    m

= ∑   ∑     ∑   μ(d)

i=1   j=1  d|gcd( i,j )

只有当gcd为1 时候结果为1,否则为0;

很像莫比乌斯函数(n为1,莫比乌斯为1 ,否者为0)

第一步转化,转成莫比乌斯

第二部调∑顺序

 n

  ∑    ∑      ∑    μ(d)

 d=1  ad<=n  bd<=m

 

  n

=∑   μ(d) ∑      ∑    1

 d=1         ad<=n  bd<=m

 

  n

=∑  μ(d) |_ n/d _| |_ m/d _|

 d=1         

 

O(n)复杂度,k次询问就是Kn  复杂度

式子和d,n都相关

PS:d=1-min(n,m)      (假设)n最大

可以提前吧μ(d)算出

 

d枚举1-n,下取整n/d有多少种可能

下面分两步

(1)       1<=d<=√n      |_ n/d _|

√n种取值

(2)       √n<d<=n       n/d < √n

√n种取值

 

复杂度O(√n)

 

  n

=∑  μ(d) |_ n/d _| |_ m/d _|

 d=1         

 

 

箭头表示数值发生改变

括号表示在该区间内数值不发生改变

 

写一下代码

求μ(d)

Mu表示前缀和

Solve  给定d,n求

假设n<m

 

是区间右端的点

尝试证明

证明:

 

要证

 

代码呈现如下:

xian_xing_shai();

for (int a=1;a<=n;a++)
    sum_mu[a] = sum_mu[a-1] + mu[a];
    
int solve(int n,int m)
{
    int ans=0;
    //for (int d=1;d<=n;d++)
    //    ans += mu[d] * (n/d) * (m/d);
    for (int d=1;d<=n;)
    {
        int next_d = min(
            n/(n/d),
            m/(m/d)
        );
        ans += (sum_mu[next_d] - sum_mu[d-1]) * (n/d) * (m/d);
        d=next_d+1;
    }
    return ans;
}

 

(不知道有没有用)

小结一下:

 

 

 

枚举P的倍数

∑化简:换个东西枚举或交换∑顺序

 

换成一个积性函数预处理

-----------------------------------------------------------------------------------------------------------------------------

 这种题目特别好出

随便换一下你就要重新推好久。。。。

 

转载于:https://www.cnblogs.com/xiaoyezi-wink/p/10659909.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值