首先考虑求出遍历每棵子树并回到子树的根,并且还要从根出发往其他的点,最晚的出发时间,设为 $f_u$。假设按照 $v_1,v_2,\ldots,v_d$ 的顺序访问 $u$ 的所有子树,则最晚的出发时间为 $\min\{a_u,a_u-2size_u+k,f_{v_i}-1-2\sum_{j=1}^{i-1}size_{v_j}\}$。可以证明按 $f_{v_i}+2size_{v_i}$ 从小到大排序是最优的。过程中还可以求出删掉点 $u$ 的一棵子树后的答案。
最后一定是在一个叶子结束,一遍 DFS 就可以统计答案。
时间复杂度 $O(n\log n)$。