首页 > 编程语言 > 详细

莫队算法(离线)

时间:2019-07-24 20:41:30      阅读:103      评论:0      收藏:0      [点我收藏+]

何谓莫队算法?

莫队算法是莫涛队长发明的,为表示对他的尊敬,故称这种算法叫莫队。


适用范围

一种处理序列操作的离线算法,适用范围广,复杂度一般带根号。


莫队算法的思路

假设题目不涉及修改操作。将所有操作离线,将所有操作进行二元组排序,第一维是左端点所在块的编号,第二维是右端点。排序后,按照顺序处理询问,维护一个双端队列,同时维护队列内区间的答案,每次从$[L,R]$的答案,扩展到$[L-1,R]$ $[L,R-1]$ $[L+1,R]$ $[L,R+1]$的答案,最终得到当此询问区间的答案。


时间复杂度分析

假设序列长度为$n$,询问数为$m$,分块块长为$d$,那么左端点在同一块内时,左端点移动每次不超过$d$,右端点总共移动不超过$n$,显然是$\Theta (m\times d+\frac{n^2}{d})$,令$d=\sqrt{n}$,$n,m$同阶,则时间复杂度为$\Theta(n\sqrt{n})$,常熟很大。

莫队算法(离线)

原文:https://www.cnblogs.com/wzc521/p/11240671.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!