rt,线段树的 Add 函数这样写到底对不对啊?如果是对的,球证明,如果是错的,球 Hack 。
void Add(int x,int l,int r,int add)
{
if(node[x].l >= l && node[x].r <= r)
{
node[x].lz += add;
node[x].sum += (node[x].r - node[x].l +1 ) * add;
rtn;
}
if(node[lc(x)].r >= l)Add(lc(x),l,r,add);
if(node[rc(x)].l <= r)Add(rc(x),l,r,add);
PushDown(x);
PushUp(x);
}
被这个问题折磨了一个月了,球回答。/kk