C++学习笔记——解析莫队算法

引言

集训队队长莫涛 and 提莫队长 are coming ......


莫队算法

相传是国家集训队队长莫涛在一次比赛中想出的算法,所以称作莫队算法(提莫队长??),类似于暴力维护,但却非常巧妙,而且据说是可以对区间进行各种操作,几乎万能哎,还有各种改进版本,如带改莫队,树上莫队 and so on


算法思想

基本思想

我们先想象出两个指针curL和curR,以及我们要查询的区间[ L , R ]

当遍历到这种情况时,我们只需要将curL向左移动,以 O( 1 ) 的时间复杂度得到新的区间[ L , curR ]

再将curR向左移动,得到目标区间 [ L , R ]

但如果多组询问,且每组询问的L和R跨度极大呢

算法精髓

对于一个长度为n的区间,将他分为

posted @ 2019-07-18 10:59  Nomad_Joe_violet  阅读(13)  评论(0编辑  收藏  举报  来源