莫队

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写法 留坑
带修莫队
树上莫队

全部评论

相关推荐

offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务