modui 1

莫队(莫比乌斯队列),离线算法
首先我们需要知道一个询问的回答
然后我们需要知道询问区间的变化对于询问答案的影响
知道这两点以后就可以利用区间端点l和r来回移动修改答案了
不过如果l和r的跨度很大,甚至大于重新算答案,显然这个算法还不如暴力
这时候我们就可以优化一下下
1.分块
主要作用是限制l和r
对于左端点分块,限制l的范围在 O((N)) 这个区间
这个时候右端点就控制不住了
??
排序
块内排序限制右端点单增,这样右端点的移动就是块内 O((N))
2.奇偶化排序
这个东西是对于出块来讲的
如果出块,考虑一个数据:
块1的右端点询问是:
9 1000
块2的左端点是:
10 11
块2右端点的询问是:
11 999
此时从块1到2再到3,r跳2000步
如果把块2的右端点改到左端点,r只用跳1000步
为了把情况1转换到情况2,排序函数应奇偶分类
奇数块r单增,偶数块单减
这一步优化就使r连续变化,从而加速莫队

然后就是一些操作了
普通莫队和带修莫队等等

posted @   2K22  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示