今天某大神跑过来跟我说来学分块吧,很有意思的
于是我就信了= =
对于一个点修改区间查询的数列,把原序列按照sqrt(n)大小为长度分块,每一个块处理它块内的权值和,要查询时,块内的暴力查询,块外直接使用预处理得到的结果sqrt(n)的时间内求出即可
设分块大小为M
如果查询点在一个块的头标记点(i%M),那么将这个点直接前进M步进入下一个块的头标记点即可
如果当前点在一个块内,但并不是头标记点,暴力把答案得出来即可
#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<cmath>
#include<cstring>
using