社区讨论

可以不使用 DFS 建方点

P5622 [DBOI2019] 巫女的职责参与者 2已保存回复 1

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@mcnhq909
此快照首次捕获于
2025/07/03 22:38
8 个月前
此快照最后确认于
2025/11/04 06:46
4 个月前
查看原帖
split(u,v)split(u,v) 之后,可以直接断掉 splay 上的边并更新信息。这样写常数更小~
代码示例:
CPP
void merge(const int i, const int j) {
    if(i == j) return;
    if(check(i, j)) {
        ++tot;
        queue<int> q;
        q.push(i);
        while(!q.empty()) {
            const int u = q.front(); q.pop();
            tr[u].f = tot;
            pushdown(u);
            if(tr[u].ch[0]) q.push(tr[u].ch[0]), tr[u].ch[0] = 0;
            if(tr[u].ch[1]) q.push(tr[u].ch[1]), tr[u].ch[1] = 0;
            pushup(u);
        }
    }
    else tr[i].f = j;
}

回复

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

正在加载回复...