C++学习笔记——解析莫队算法
引言
集训队队长莫涛 and 提莫队长 are coming ......
莫队算法
相传是国家集训队队长莫涛在一次比赛中想出的算法,所以称作莫队算法(提莫队长??),类似于暴力维护,但却非常巧妙,而且据说是可以对区间进行各种操作,几乎万能哎,还有各种改进版本,如带改莫队,树上莫队 and so on
算法思想
基本思想
我们先想象出两个指针curL和curR,以及我们要查询的区间[ L , R ]
当遍历到这种情况时,我们只需要将curL向左移动,以 O( 1 ) 的时间复杂度得到新的区间[ L , curR ]
再将curR向左移动,得到目标区间 [ L , R ]
但如果多组询问,且每组询问的L和R跨度极大呢
算法精髓
对于一个长度为n的区间,将他分为