void merge(int &x,int y)
{
if(!x||!y){x=x+y;return;}
sum[x]+=sum[y];
merge(ls[x],ls[y]);
merge(rs[x],rs[y]);
}
int merge(int x,int y)
{
if(!x||!y){ return x+y;return;}
int p=++tot;
ls[p]=merge(ls[x],ls[y]);
rs[p]=merge(rs[x],rs[y]);
sum[p]=sum[ls[p]]+sum[rs[p]]
return p;
}
原文:https://www.cnblogs.com/KatouKatou/p/9859459.html