莫队定义:
莫队算法 = 离线 + 暴力 + 分块。(优雅的暴力)
(莫队:2010年信息学国家集训队队员莫涛)
“离线”和“在线”的概念。在线是交互式的,一问一答;如果前面的答案用于后面的提问,称为“强制在线”。离线是非交互的,一次性读取所有问题,然后一起回答,"记录所有步,回头再做”。
基础的莫队算法是一种离线算法,它通常用于不修改只查询的一类区间问题,复杂度O(),没有在线算法线段树或树状数组好,但是编码很简单。
莫队处理的两类问题:
一是莫队维护区间答案
二是维护区间内的数据结构(常与分块结构组合食用)
普通莫队:
题意:给定n个数的序列,提出q次询问,每次询问l到r之间有多少个不同的数
思路:将q次询问的L和R存储起来,将L和R进行排序,然后每次求当前的L和R的区间答案,就可以使用上次(L,R)区间的答案来转化。