首页 > 其他分享 >浅谈整除分块

浅谈整除分块

时间:2023-05-08 19:45:14浏览次数:34  
标签:lfloor frac 浅谈 分块 dfrac sum rfloor 整除 bmod

例题一

\[\sum_{i=1}^n \lfloor\frac n i\rfloor\\ \]

首先很容易想到直接求解,对于较大的数据,\(O(n)\)做法无法通过。

注意到函数\(y=\lfloor\dfrac n x\rfloor\)的图像如下:

不难发现,随着 \(x\) 增大 ,\(y\)单调不增,这说明对于相同值的 \(y\) 总是分布在同一块区域。

这启发我们根据\(y\)值,把\(x\)分组,每组“打包”算好。

这个时间复杂度显然是 \(O(\sqrt n)\)的,时间复杂度与\(\lfloor\dfrac n x\rfloor\)的数量有关,这个数量大概是\(2\sqrt n\)。

虽然图像上看\(y\)的数量很大,但是考虑到许多\(y\)不包含整数的\(x\),因此时间复杂度就是这样的了。

代码实现如下:

for(LL l=1,r;l<=n;l=r+1)
{
   r=n/(n/l);
   ans+=(n/l)*(r-l+1);
}

例题二

\[\sum_{i=1}^nk\bmod i\\ \]

对原式进行推导:

\[\sum_{i=1}^nk\bmod i\\ =\sum_{i=1}^nk-i\lfloor\frac k i\rfloor\\ =nk-\sum_{i=1}^ni\lfloor\frac k i\rfloor\\ \]

后面的部分可以用整除分块解决,对于每个\(\lfloor \dfrac n i\rfloor\),内部相当于一个等差数列。

代码实现如下:

ans=n*k;
for(LL l=1,r;l<=n&&l<=k;l=r+1)
{
    r=min(k/(k/l),n);
    ans-=(k/l)*(r+l)*(r-l+1)/2;
}

例题三

函数 \(f(i)\) 表示 \(i\) 所有约数的和。

求 \(\sum\limits_{i=L}^R f(i)\)。

考虑前缀和作差,问题变成\([1,R]-[1,L-1]\)。

于是不难列出式子求解,与上一题很像。

例题四

\[\sum_{i=1}^n\sum_{j=1}^m (n\bmod i)(m\bmod j)\\ \]

这道题显然也是推导。

\[\sum_{i=1}^n\sum_{j=1}^m (n\bmod i)(m\bmod i)\\ =\sum_{i=1}^n(n\bmod i)\sum_{j=1}^m (m\bmod j)\\ =\sum_{i=1}^n(n-i\lfloor\frac n i\rfloor)\sum_{j=1}^m (m-j\lfloor\frac m j\rfloor)\\ =(n^2-\sum_{i=1}^n i\lfloor\frac n i\rfloor)(m^2-\sum_{j=1}^m m\lfloor\frac m j\rfloor)\\ \]

左右两边分开计算即可。

例题五

\[\sum_{i=1}^n (n\bmod i)(m\bmod i)\\ \]

和上道题看着很像,不过这道题就很复杂了。

\[\sum_{i=1}^n (n\bmod i)(m\bmod i)\\ =\sum_{i=1}^n (n-i\lfloor\frac n i\rfloor)(m-i\lfloor\frac m i\rfloor)\\ =\sum_{i=1}^n (nm-(n+m)i\lfloor\frac n i\rfloor+i^2\lfloor\frac n i\rfloor\lfloor\frac m i\rfloor)\\ =n^2m-(n+m)\sum_{i=1}^n i\lfloor\frac n i\rfloor+\sum_{i=1}^n i^2\lfloor\dfrac n i\rfloor\lfloor\frac m i\rfloor\\ \]

前面的式子我们已经可以轻松求出了,对于后面的这个东西,我们还是画图观察:

显而易见,仍然满足我们刚开始的两个性质,因此依旧使用之前的方式进行整除分块,时间复杂度依旧是\(O(\sqrt n)\)。

具体思想如下:

我们的值变化,要么是因为 \(\lfloor\dfrac n x\rfloor\) 变化了,要么是因为 \(\lfloor\dfrac m x\rfloor\) 变化了。

因此找出 \(\lfloor\dfrac n x\rfloor\) 变化的点和 \(\lfloor\dfrac m x\rfloor\) 变化的点中最近的一个,作为我们的 \(r\) 值。

后面部分的代码实现如下:

for(LL l=1,r=0;l<=n;l=r+1)
{
    r=min(n/(n/l),m/(m/l));
    ans=ans+(n/l)*(m/l)*(sum(r)-sum(l-1));
}

这里出现了一个函数,它的作用是求出:\(sum_i=\sum\limits_{i=1}^ni^2\)。

公式是 \(\sum\limits_{i=1}^ni^2=\dfrac {n(n+1)\times(2n+1)} 6\),用数学归纳法很好证明,这里不多赘述了。

标签:lfloor,frac,浅谈,分块,dfrac,sum,rfloor,整除,bmod
From: https://www.cnblogs.com/dengduck/p/17382929.html

相关文章

  • 浅谈联网汽车安全漏洞
    ​“智能网联汽车存在内生共性问题,即软硬件的漏洞后门,基于此进行的网络攻击可以直接带来勒索、盗窃、大规模车辆恶意操控风险,还有数据泄露等网络安全事件。如果内生的漏洞后门问题不解决,系统自身难保,很难谈系统安全之上的数据安全、应用安全。”——中国工程院院士邬江兴随着汽......
  • 浅谈Protocol Buffers、GRPC、Buf、GRPC-Gateway
    1.ProtocolBuffers什么是proto?ProtocolBuffers如何理解ProtocolBuffers?协议缓冲区非proto协议如何订立、传播以及维护?如何理解协议缓冲区?Protocolbuffers提供了一种语言中立、平台中立、可扩展的机制,用于以向前兼容和向后兼容的方式序列化结构化数据。它......
  • 浅谈(0,eval)('window')
    浅谈(0,eval)('window')最近研究qiankun源码,在import-html-entry包中看到这个,一脸懵,研究了一下,记录一下。参考了这篇博客这个干啥用的 //通过这种方式获取全局window,因为script也是在全局作用域下运行的,所以我们通过window.proxy绑定时也必须确保绑定到全局window上......
  • 浅谈C#中动态类型与值类型装拆箱问题
    C#中的值类型封箱、开箱与动态类型的关系封箱和开箱是C#中两个重要的概念,它们涉及到值类型和引用类型在编译七和运行时的处理方式。动态类型是C#4.0引入的一个新特性,它允许在编译时不指定类型,而在运行时动态绑定类型。本文将简要介绍封箱、开箱和动态类型的概念,以及装拆箱与动态......
  • 浅谈一下对于 js 中的 this 的理解
    浅谈一下对于js中的this的理解对于this值的定义:简单来说this是一个对象,这个对象具体的值是什么,取决于运行时的环境,即代码执行时的环境。MDN:当前执行上下文(global、function或eval)的一个属性,在非严格模式下,总是指向一个对象,在严格模式下可以是任意值。......
  • [浅谈] 同余最短路
    \(\color{red}\text{总述}\)所谓同余最短路,就是把余数相同的情况归为一类,然后找到形成这种情况的最短路径。\(\color{purple}\text{P3403跳楼机}\)我们假设只能跳\(x\)步。那么可以达到的楼层是\(x,2x,3x,4x\),他们的共同点是\(\%x=0\)。那么现在再加个可以跳\(y\)步(......
  • 浅谈地下污水厂智能照明控制应用
    罗轩志江苏安科瑞微电网研究院有限公司江苏江阴214432   摘要:结合某地下污水厂项目,从结构、系统组成、系统功能、控制要求、场景模式等方面介绍了地下污水厂智能照明控制系统,探索了一套适用于地下污水厂的智能照明控制策略,以确保地下污水厂正常运行的照明需求。  关键词:智......
  • 浅谈无线测温系统在煤矿高压电气设备上的应用
    罗轩志江苏安科瑞电器制造有限公司  江苏江阴  214405   摘要:随着社会经济的不断发展,电力系统向着高电压、高容量的方向前进着,电力系统全新的技术与设备层出不穷,电力的输送能力不断提升。然而,高压电气设备承载的高压电力负荷也让其自身的温升问题成为了威胁电网稳定的元凶,......
  • 浅谈智慧医院的信息集成平台建设与配电设计方案
    罗轩志江苏安科瑞微电网研究院有限公司 江苏江阴 214432  摘要:随着云计算、5G、大数据、物联网等技术的不断发展与进步,推动着智慧医院建设的飞速发展。智慧医院建设强调医院内部业务的多流程联动和医疗信息互联互通的高协同效率,突出了数据驱动下构建高质量数据的必要性。文章......
  • 浅谈中压系统母线弧光保护的必要性
     罗轩志江苏安科瑞微电网研究院有限公司  江苏江阴  214432   摘要:本文介绍了中低压开关柜内部发生电弧故障的原因、危害以及弧光保护在中压母线保护中的原理、用途、应用关键点,同时还介绍了弧光保护应用现状,探讨了无线测温在线监测系统在实际工作场景中的应用案例,证明了......