pushdown操作时
要记得
将左儿子与右儿子的其他懒标记清零
例如
a[ls(u)].f1=a[rs(u)].f1=0;
a[ls(u)].f0=a[rs(u)].f0=0;
a[ls(u)].f=a[rs(u)].f=0;
但判断反转不能这样做
要
if(a[ls(u)].f1==1||a[ls(u)].f0==1)
{
a[ls(u)].f1=a[ls(u)].f1^1;
a[ls(u)].f0=a[ls(u)].f0^1;
}
else
a[ls(u)].f=a[ls(u)].f^1;
if(a[rs(u)].f1==1||a[rs(u)].f0==1)
{
a[rs(u)].f1=a[rs(u)].f1^1;
a[rs(u)].f0=a[rs(u)].f0^1;
}
else
a[rs(u)].f=a[rs(u)].f^1;
我就因这调了一下午