splay的疑惑
  • 板块学术版
  • 楼主Engulf
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/3/26 09:26
  • 上次更新2023/10/28 05:39:17
查看原帖
splay的疑惑
482728
Engulf楼主2022/3/26 09:26

模板题中,splay的kth函数我是这样写的:

int kth(int k){
	int p=root;
	while(1){
		if(tr[tr[p].son[0]].siz>=k)p=tr[p].son[0];
		else if(tr[tr[p].son[0]].siz+tr[p].cnt==k)return p;
		else k-=tr[tr[p].son[0]].siz+tr[p].cnt,p=tr[p].son[1];
	}
}

结果 TLE,仅60pts。

但是改成这样:

int kth(int k){
	int p=root;
	while(1){
		if(tr[tr[p].son[0]].siz>=k)p=tr[p].son[0];
		else if(k>tr[tr[p].son[0]].siz+tr[p].cnt) k-=tr[tr[p].son[0]].siz+tr[p].cnt,p=tr[p].son[1];
		else return p;
	}
}

就能AC。

为啥?求解。

2022/3/26 09:26
加载中...