二维线段树被卡M+T...于是去学二维树状数组区间更新区间查询 树状数组维护数列区间xor的修改.删除(就是把原问题改成一维): 以下p*i实际都指i个p相xor,即(i&1)*pa表示原数列d[i]表示a[i]^a[i-1],e[i]=d[i]*igetd(x)和gete(x)分别表示对d/e求前x个元素的前缀xor用树状数组维护e[i]和d[i]的前缀xor区间更新[l,r],x:d[l]^=x,d[r+1]^=x,e[l]^=l*x,e[r+1]^=(r+1)*x区间查询a[x]的前缀xo…