关于莫队本质的理解

莫队在二维平面上进行。
对于区间的莫队,考虑现在在\([l,r]\),可以快速把l++,l--,r++,r--
\((l,r)\)投射到平面上,则我们可以把这个点往四个方向移动一格。
事实上,由于询问互相不影响,我们回答询问的顺序是任意的。
回答询问顺序的最小代价是曼哈顿距离哈密顿链,好像是npc的。
考虑近似算法。
分块,每次处理\(l\)在区间\([a,b]\)的答案。
把右端点其所在块排序,然后按照这个顺序移动。
处理\(l\)\(r\)在某个确定块的代价不超过\(O(sqrt{n})\)
\(r\)移动到下一个块时可能很慢,但是均摊时间复杂度是\(O(n)\)的。
于是总时间复杂度\(O(n\sqrt{n})\)
如果有三个限制\((a,b,c)\),则事实上是三维空间的最小曼哈顿距离哈密顿链。
考虑分块,把每维分成\(n^{\frac{1}{3}}\)个块。
把所有块按照\(a,b\)所在的块,\(c\)作为第一,第二,第三关键字排序。
多个限制同理,如果限制时\(a_1...a_n\),把\(a_1,a_2...a_{n-1}\)所在的块,\(a_n\)作为第一,第二...第\(n\)关键字排序。

posted @ 2021-05-10 15:27  celerity1  阅读(91)  评论(0)    收藏  举报