问一个小问题
查看原帖
问一个小问题
232125
Anita_Haileytjqs楼主2022/5/3 15:14

这题里如果使用 lct 的话,大概询问次数会是 lct 中进行 access(x) 的时间一样吧。

那,我在uoj中提交了一份代码

void access(int x) {
	int u = x;
	for (int y = 0; x; x = fa(y = x)) splay(x), son(x, 1) = y, up(x);
	// splay(u);
}

对,没注释之前过不去,注释了之后过了。

这是常数问题吗?不太懂这种数据结构的原理,但是我学splay的时候看见过什么“做什么操作之后都splay一下”可以保证时间复杂度

这题里,如果不 splay(u) 那复杂度还对吗?

另外问一下 ,这题里,如果使用 lct 的话,还需要随机一个点排列吗?我看好多题解都使用了这种方式,但是我没shuffle也过了正常数据,没过hack数据,我猜测可能是常数问题?我真的感觉使用lct的话就不需要开头随机一个序列啊,还是说这种方式可以减小常数?

2022/5/3 15:14
加载中...