• 整除分块


    (sum_{i=1}^N lfloor frac Ni floor)(N leq 10^{12})

    显然不能直接做,

    数论性质:

    $ 1. large lfloor frac Ni floor$最多只有(2sqrt{N})种取值

    证明:对于(ile sqrt{N},) 只有 (sqrt{N}) 种,对于 (i>sqrt{N},large{frac Ni}<sqrt{N}),也只有 (sqrt{N}) 种取值,共计 (2 sqrt{N})(;;Box)

    (2.) 设 $large lfloor frac N{i'} floor $ 与 (large lfloor frac Ni floor) 相等,则 (i') 的最大值为 $large left lfloor frac N{left lfloor frac Ni ight floor } ight floor $

    证明:

    (large{ lfloor frac Ni floor}=k) ,于是可以写成 (ki+p=N,1le p<i) 的形式,若 (large{lfloor frac N{i+d} floor}=k) ,于是有 (k(i+d)+p'=N) ,可以得到 (p'=p-kd) ,则 (d) 能取的最大值为 (large lfloor frac pk floor) ,于是 :

    [egin{aligned}i'&=i+d_{max} \ &=i+lfloor frac pk floor \&=i+left lfloor frac {N ;mod; i}{lfloor frac Ni floor} ight floor \ &=i+left lfloor frac {N-lfloor frac Ni floor i}{lfloor frac Ni floor} ight floor \ &=left lfloor i + frac {N-lfloor frac Ni floor i}{lfloor frac Ni floor} ight floor \ &=left lfloor frac{lfloor frac Ni floor i}{lfloor frac Ni floor} + frac {N-lfloor frac Ni floor i}{lfloor frac Ni floor} ight floor \ &=left lfloor frac N{lfloor frac Ni floor} ight floor quad quadBoxend{aligned}]

    然后,设两个指针 (L)(R)(L) 的初始值为 (1) ,每次令 (large R=left lfloor frac N{lfloor frac NL floor} ight floor) ,将 (large (R-L+1)cdot lfloor frac NL floor) 累加至答案中 ,再令 (L=R+1)

    由于 (large lfloor frac NL floor) 只有 (2sqrt N) 种取值 ,且单调递减,则最多只有 (2sqrt N) 个取值不同的段,时间复杂度为 (O(sqrt N))

    模板:

     1 int main()
     2 {
     3     ll ans=0,n;
     4     scanf("%lld",&n);
     5     for(int l=1,r;l<=n;l=r+1){
     6         r=n/(n/l);
     7         ans += (r-l+1)*(n/l);
     8     }
     9     printf("%lld
    ",ans);
    10     return 0;
    11 }

    拓:(forall a,b,cin Z),(left lfloor frac{a}{bc} ight floor = left lfloor frac{left lfloor frac{a}{b} ight floor}{c} ight floor)

    (sum_{i=1}^{n}frac{left ( 1+left lfloor frac{n}{i} ight floor ight )*left lfloor frac{n}{i} ight floor}{2}=sum_{i=1}^{n}i*left lfloor frac{n}{i} ight floor)

    学习博客:https://www.cnblogs.com/0xfffe/p/9648943.html

  • 相关阅读:
    没有 Lambda 演算何来匿名函数——匿名函数(匿名方法和Lambda)、委托、LINQ
    HTML 4.01 符号实体
    利用 IHttpModule 自定义 HTTP 处理模块
    数据结构单链表
    Ext.Net 1.2.0_Ext.Net.RendererFormat 常用数据格式转换呈现格式
    ASP.NET 以 Request.Querystring、Request.Form 或 Request.Params 获取客户端的数据
    Flex>连接WebService
    java.sql.SQLException: 关闭的连接
    jsp>SmartUpload相关类说明
    flex>样式和主题
  • 原文地址:https://www.cnblogs.com/wsy107316/p/12358606.html
Copyright © 2020-2023  润新知