modui 1
莫队(莫比乌斯队列),离线算法
首先我们需要知道一个询问的回答
然后我们需要知道询问区间的变化对于询问答案的影响
知道这两点以后就可以利用区间端点l和r来回移动修改答案了
不过如果l和r的跨度很大,甚至大于重新算答案,显然这个算法还不如暴力
这时候我们就可以优化一下下
1.分块
主要作用是限制l和r
对于左端点分块,限制l的范围在
这个时候右端点就控制不住了
??
排序
块内排序限制右端点单增,这样右端点的移动就是块内
2.奇偶化排序
这个东西是对于出块来讲的
如果出块,考虑一个数据:
块1的右端点询问是:
9 1000
块2的左端点是:
10 11
块2右端点的询问是:
11 999
此时从块1到2再到3,r跳2000步
如果把块2的右端点改到左端点,r只用跳1000步
为了把情况1转换到情况2,排序函数应奇偶分类
奇数块r单增,偶数块单减
这一步优化就使r连续变化,从而加速莫队
然后就是一些操作了
普通莫队和带修莫队等等
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具