提交记录
在 CF992E 中,我的线段树当中查询如下:
inline void qry(int x, int l, int r)
{
if (res != -1 || c[x] < 0)
return ;
if (l == r)
{
if (c[x] == 0)
res = l;
return ;
}
push_down(x, l, r);
if (c[ls] >= 0)
qry(ls, l, mid);
if (res != -1)
return ;
if (c[rs] >= 0)
qry(rs, mid + 1, r);
}
它极限数据跑了惊人的近 500ms。而如果我把 push_down 写在第二个 if 前面,它就水灵灵地 T 了极限数据(3000ms)。求问两者时间复杂度或常数上的差异