莫队学习笔记

普通莫队

  • 把区间分成许多个长度为 \(\sqrt n\) 的小区间,然后以左端点区间位置为第一关键字,然后右端点为第二关键字排序。
  • 这样的时间复杂度是 \(O(\sqrt n\times n)\) 的时间复杂度,因为,一个区间一个区间的看,第一个区间,很显然是右指针必须走 \(n\) 步,然后左指针最多走 \(\sqrt n + \sqrt {n-1} + \sqrt {n-2} + ··· + 1\)\(\frac{(\sqrt {n} + 1)\times \sqrt {n}}{2}\),然后一个区间的总步数就是 \(\frac{n+1}{2} + n\),然后所有区间的总步数就是 \((\frac{n+1}{2} + n)\times \left \lfloor \frac{n}{\sqrt{n}} \right \rfloor\)
posted @ 2021-05-25 11:23  u_yan  阅读(37)  评论(0编辑  收藏  举报