请忽略↑标题
上一节说了什么东西
哦基本思想
那么我们怎么如何用代码来实现这个东西呢
现在假装我们有一道题叫X
设立变量Temp来表示当前解
设立变量L,R表示Temp是区间【L,R】的解
我们的目的是一个个地转移使得
让L == 询问.l
让R == 询问.r
再将此时的Temp记录下来再去转移下一个询问
就像下面这样做
void update(int x,int p){
temp += a[x] * p;
}
void slove(){
int L = 1,R = 0;temp = 0;
for(int i=1;i<=m;i++){
while(R < q[i].r)update(++R,1);
while(R > q[i].r)update(R--,-1);
while(L < q[i].l)update(L++,-1);
while(L > q[i].l)update(--L,1);
q[i].ans = temp;
}
}