niiick @ 2018-04-01 16:27:29
splay里面有一个旋转写错竟然还A了
void splay(int& p,int x)
{
while(x!=p)
{
int y=fa[x],z=fa[y];
if(y!=p)
{
if((ch[y][0]==x)^(ch[z][0]==y)) rotate(p,y);//就这里写错竟然过了
else rotate(p,y);
}
rotate(p,x);
}
}
搞得我后来写其它题调了好久都不对
才发现我splay的板子一直错了
(掀桌)
by SofanHe @ 2018-04-02 06:34:55
@niiick 这不是单旋的操作吗?
by niiick @ 2018-04-02 10:59:45
@ 多功能的荀彧
if((ch[y][0]==x)^(ch[z][0]==y)) rotate(p,x);
这里应该是这样的吧
by niiick @ 2018-04-02 10:59:57
@多功能的荀彧