莫队算法:莫队算法使用范围:
1.支持离线操作。
2.在已有的序列左右加入或删除一个节点的复杂度很低。
3.外层复杂度为nsqrt(n)。
我们将序列分为sqrt(n)块,每一块的大小也是sqrt(n),我们将询问按照左端点所在块为第一关键字,当左端点所在块一样是,如果编号是奇数块就按照右端点从升序排序,否则降序,可以想一想为什么,因为这样是一个Z字形。然后我们就可以按排完序后的顺序依次暴力转移了。
细节:转移时,初始l设为1,r设为0,这样方便。
莫队算法:莫队算法使用范围:
1.支持离线操作。
2.在已有的序列左右加入或删除一个节点的复杂度很低。
3.外层复杂度为nsqrt(n)。
我们将序列分为sqrt(n)块,每一块的大小也是sqrt(n),我们将询问按照左端点所在块为第一关键字,当左端点所在块一样是,如果编号是奇数块就按照右端点从升序排序,否则降序,可以想一想为什么,因为这样是一个Z字形。然后我们就可以按排完序后的顺序依次暴力转移了。
细节:转移时,初始l设为1,r设为0,这样方便。