求助FHQ-Treap
查看原帖
求助FHQ-Treap
750163
_Kenma_楼主2024/8/8 10:53

关于交换前驱/后继的写法问题

void swap_pre(int x){
		int a=0,b=0,c=0,d=0;
		int k=find(x);
		split(rt,k,c,d);
		split(c,k-1,b,c);
		split(b,k-2,a,b);
		rt=merge(merge(merge(a,c),b),d);
	}

↑这是对的

void swap_pre(int x){
		int a=0,b=0,c=0,d=0;
		int k=find(x);
		split(rt,k-2,a,b);
		split(b,k-1,b,c);
		split(c,k,c,d);
		rt=merge(merge(merge(a,c),b),d);
	}

↑这是错的

为什么?

2024/8/8 10:53
加载中...