关于 WBLT 的有交合并
查看原帖
关于 WBLT 的有交合并
511639
ケロシブルアカ楼主2025/2/1 15:39

第一次写 WBLT 的有交合并,随便写了写:

int Merge(int u, int v) {
	if(! u || ! v) return u | v;
	if(t[u].F <= t[v].G) return merge(u, v);
	if(t[v].F <= t[u].G) return merge(v, u);
	if(t[u].sz < t[v].sz) swap(u, v);
	if(t[v].sz == 1) {
		insert(u, t[v].F, t[v].id);
		return u;
	}
	down(u);
	int x, y;
	split(v, t[t[u].ls].F, x, y);
	return merge(Merge(t[u].ls, x), Merge(t[u].rs, y));
}

然后树形态维护好后,就直接过了

求助这样写有无正确性 /kel /kel

2025/2/1 15:39
加载中...