浅谈整除分块
学莫反的时候,发现许多题都会用到一个小技巧,于是有了下面这篇博文~
引入
有问题如下:求
其中
考虑暴力做法枚举每一个 并对 求和,时间复杂度为 。
下面考虑优化。
对于一个数 ,将 的值打表后发现,表中有大量重复元素,那么是否可以将“将相同的数依次相加”改为“相同数的个数乘以这个数”呢?答案是可以的。
如果我们将 值相同的放在一个块里,那么会有如下结论:
结论1:块数小于等于
结论2:每一块的右端点 等于
证明不会。
因此可以保证复杂度控制在 左右。
例题:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示