void update(int &k,int pre,int l,int r,int x)
{
if(!k) k=++tot;
sum[k]=sum[pre]+1;
if(l==r) return void(sum[k]=1);
if(x<=mid) update(ls[k],ls[pre],l,mid,x),rs[k]=rs[pre];
else update(rs[k],rs[pre],mid+1,r,x),ls[k]=ls[pre];
}
update 函数里面,l==r的时候我多赋值了一次sum[k]=1,然后就 20 WA了。删掉之后A了。都到叶子了,多赋值一次为什么会错啊?