WA30求条

https://www.luogu.com.cn/paste/i5a5lnhw

1 个赞

为什么split.

node split(int x,int k)
{
	if(!x) return {0,0};
	if(val[x]<k)
	{
		node t=split(sr[x],k);
		sr[x]=t.x;
		push_up(x);
		return {x,t.y};
	}
	else
	{
		node t=split(sl[x],k);
		sl[x]=t.y;
		push_up(x);
		return {t.x,x};
	}
}

改成

node split(int x,int k)
{
	if(!x) return {0,0};
	if(val[x]<=k)
	{
		node t=split(sr[x],k);
		sr[x]=t.x;
		push_up(x);
		return {x,t.y};
	}
	else
	{
		node t=split(sl[x],k);
		sl[x]=t.y;
		push_up(x);
		return {t.x,x};
	}
}

过了,谁能解释一下吗?

1 个赞

哦,知道了

1 个赞