如果你加入染色操作时,像这样把左边界加一。
for(int i=1;q>=i;i++)update(op[i].l+1,op[i].r,op[i].l,1);
那么不要忘记,分治时,右边界也要加一
solve(1,q+1,1);