莫队
bzoj2038莫队入门题目目前没有理解的几点就是 当前区间L R的初始化问题,为什么要L=1,R=0? 还有在 更新过程中出现了cnt《0的情况?
hdu6483莫队求区间不同数字种类数
当题目要求的区间操作满足以下条件时可以应用莫队
1)已知L,R区间答案可以O1求出【L-1,R】【L,R-1】【L+1,R】【L,R+1】
2)支持离线
3)数据范围最多最多不能超过1e6 ,1e5为合理数据范围
对于莫队的时间优化方面主要在于如何对离散区间进行排序
推荐使用第二种
1)分块排序
bool cmp(node a,node b)
{
if(pos[a.l]==pos[b.l]) return a.r<b.r;
return pos[a.l]<pos[b.l];
}
2)奇偶排序
return (pos[a.l]^pos[b.l])?pos[a.l]<pos[b.l]:((pos[a.l]&1)?a.r<b.r:a.r>b.r);
似乎还有MST写法 留坑
带修莫队
树上莫队