AC_CSP @ 2023-03-03 17:27:07
这是第一篇题解的代码
inline void rotate(int x){
int fnow=s[x].f,ffnow=s[fnow].f;
pushdown(x),pushdown(fnow);
bool w=which(x);
s[fnow].son[w]=s[x].son[w^1];
s[s[fnow].son[w]].f=fnow;
s[fnow].f=x;
s[x].f=ffnow;
s[x].son[w^1]=fnow;
if(ffnow){
s[ffnow].son[s[ffnow].son[1]==fnow]=x;
}
update(fnow);
}
求问这里为什么先下放儿子,我感觉似乎要先下放父亲?
int fnow=s[x].f,ffnow=s[fnow].f;
pushdown(x),pushdown(fnow);
by Mikefeng @ 2023-03-03 17:37:30
不如投入fhq的怀抱
by AC_CSP @ 2023-03-03 17:41:41
@Mikefeng 我不太知道 FHQ 可以 LCT 吗,如果可以的话我就改写 FHQ qwq
by Mikefeng @ 2023-03-03 17:42:48
好吧不能,要加log