Cut 判得不对,第二个样例都过不去,都可以过10个点。
错误代码关键部分:
case 2:{ if(findroot(x)!=findroot(y))break; makeroot(x); access(y);splay(x); if(r(x)==y){ cut(x,y); } break; }
正确代码:
case 2:{ if(findroot(x)!=findroot(y))break; split(x,y); if(sz(y)==2){ cut(x,y); } break; }