![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分块
TSOI_Vergil
这个作者很懒,什么都没留下…
展开
-
BZOJ 2002 分块
首先我们可以将序列分成根号n块,对于每个装置处理出它弹到下一块时的次数,这样通过n根号n的预处理,就可以实现根号n的查询。对于每个修改操作,我们只需对于修改的这一块进行暴力维护,复杂度也是根号n,这样我们就能用n根号n的时间解决这道题。 #include #include #include using namespace std; #define maxn 200005 #define bloc原创 2016-08-23 20:09:03 · 397 阅读 · 0 评论 -
洛谷 1503
这道题我们抽象成基本模型,问题就是给你一个开始全是1的序列,然后有2个操作,1是将一个位置的值 xor 1,2是询问x这个位置最左边的连续1的位置和最右边连续1的位置。我们可以怎么做呢?感觉一般的数据结构不太好弄,即使可以也要套一个二分什么的,那么我们可以考虑分块来做,我们将其分成根号n块,对于每一块,我们维护一个flag[i],flag[i]=1表示第i块全部是1,否则表示存在0,那么对于一次修原创 2016-10-26 07:32:18 · 209 阅读 · 0 评论