浅谈整除分块

学莫反的时候,发现许多题都会用到一个小技巧,于是有了下面这篇博文~


引入

有问题如下:求

i=1nni

其中 n109


考虑暴力做法枚举每一个 i 并对 ni 求和,时间复杂度为 O(n)

下面考虑优化。

对于一个数 n,将 ni 的值打表后发现,表中有大量重复元素,那么是否可以将“将相同的数依次相加”改为“相同数的个数乘以这个数”呢?答案是可以的。

如果我们将 ni 值相同的放在一个块里,那么会有如下结论:

结论1:块数小于等于 n
结论2:每一块的右端点 r 等于 nnl

证明不会。

因此可以保证复杂度控制在 O(n) 左右。

例题:

Luogu P1403 [AHOI2005]约数研究

Luogu P2424 约数和

posted @   Link-Cut-Y  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示