社区讨论

进食后人

P3870[TJOI2009] 开关参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@meyamxr4
此快照首次捕获于
2025/08/30 21:24
6 个月前
此快照最后确认于
2025/11/03 23:40
4 个月前
查看原帖
如果你的代码是类似这样的
CPP
void updata(ll x, ll l, ll r)
{
    if (l == t[x].l && r == t[x].r)
    {
        t[x].add ^= 1;
        t[x].n = t[x].r - t[x].l + 1 - t[x].n;
        return;
    }
    if (r > t[x << 1].r)
        updata(x << 1 ^ 1, max(t[x << 1 ^ 1].l, l), r);
    if (l < t[x << 1 ^ 1].l)
        updata(x << 1, l, min(t[x << 1].r, r));
    pushup(x);
}
要在修改前pushdown
CPP
void updata(ll x, ll l, ll r)
{
    if (l == t[x].l && r == t[x].r)
    {
        t[x].add ^= 1;
        t[x].n = t[x].r - t[x].l + 1 - t[x].n;
        return;
    }
    pushdown(x);
    if (r > t[x << 1].r)
        updata(x << 1 ^ 1, max(t[x << 1 ^ 1].l, l), r);
    if (l < t[x << 1 ^ 1].l)
        updata(x << 1, l, min(t[x << 1].r, r));
    pushup(x);
}

回复

1 条回复,欢迎继续交流。

正在加载回复...