检查一下求重儿子的时候有没有判 son[x] 为 0,不然在回溯到 0 的时候 sz[0] 变化后会有很多点找不到重儿子。
TLE: if(sz[son[x]] < sz[y]) son[x] = y;
if(sz[son[x]] < sz[y]) son[x] = y;
AC: if(!son[x] || sz[son[x]] < sz[y]) son[x] = y;
if(!son[x] || sz[son[x]] < sz[y]) son[x] = y;
不过除了我应该不会有人会犯这种神必错误吧()