普通莫队
首先,莫队一定是离线的!!!
然后,就是对于每个l,r都在那儿不断地移动并更新Ans。
但这样的话非随机数据就会被卡掉了。
怎么办呢?
我们的可以用分块+排序来搞搞。
我们将它n个点分成根号n块。
然后我们以l所在的块为第一关键字,r为第二关键字,来从小到大排序。
这样子我们就可以保证l每次移动最多为根号n,r每次移动最多为n。
而且,我们还可以按照奇偶排序(l位于奇数块的r从小到大,位于偶数块的r从大到小)
这样子就又能快很多了!!!
但O(n * m)是不可能达到的!!!
所以,时间可以过了。。。
这就是莫队的基本模板了。
带修莫队
带修莫队就是增加了一个修改操作,所以我们必须要存一下它的时间。
我们将修改操作和询问操作分开来排序。(询问其实不用排的)
修改操作便是以左端点所在的块为第一关键字,右端点所在的快为第二关键字,时间为第三关键字从小到大排序。
然后就是用三个指针来维护一下左端点,右端点和时间即可。
树上莫队
树上莫队的话,%d%a%l%a%o这位大佬讲的非常完美!!!
我们就是要做一个欧拉序,然后对于每个询问就转换成普通莫队的区间询问即可。
具体就不展开讲了。。。
jzoj 3360. 【NOI2013模拟】苹果树
这道题是树上莫队的板题,嗯嗯,可以做一做。
至于例题嘛,那都在下面呢:
我的莫队例题都是从这儿的例题刷来的↙
dalao
以及
大佬%d%a%l%a%o!!!
但我觉得莫队讲得好的还是hzwer大佬(不只是总结,还有每道题)
下面是例题及来源:
bzoj 2038 [2009国家集训队]小Z的袜子(hose)
luogu SP3267 DQUERY - D-query
↑就是↓的弱化版,用莫队就能卡过
luogu P1972 [SDOI2009]HH的项链(bzoj也有)
bzoj 2120 数颜色(luogu也有)
NPY and girls
Lucky
Graph
项目管理
下面是题解:
bzoj 2038 [2009国家集训队]小Z的袜子(hose)
luogu P1972 [SDOI2009]HH的项链
bzoj 2120 数颜色
NPY and girls
Lucky
Graph
项目管理
(待更)