天天看点

关于线段树建树的一修改

区间求和查询操作
ll query(ll k,ll l,ll r)
{
    if(tree[k].l==l&&tree[k].r==r)
    {
        return tree[k].sum;
    }
    ll mid=tree[k].l+tree[k].r>>1;
    if(mid>=r)
    {
        return query(k<<1,l,r);//这里注意,不能写:l,mid
    }
    else if(mid<l)
    {
        return query(k<<1|1,l,r);//这里不能写mid+1,r
    }
    else
    {
        return query(k<<1,l,mid)+query(k<<1|1,mid+1,r);
    }
}