那可能是因为你只开了一个 sumsumsum。
由于 1=1\sqrt{1}=11=1,所以我们可以再开一个 maxnmaxnmaxn 记录区间最大值,如果此时最大值不足 111 时就没必要递归了。
if(a[x].maxx>1){ change(a[x].lson,l,r); change(a[x].rson,l,r); }