这题是一个比较妙的DP题,我们并不能像处理普通的树形DP题那么做我们发现我们一个点覆盖距离小于等于d的所有点,不仅仅是只涉及到祖先节点,还包括一条折线的情况,因此我们不是能很好的直接利用子树信息转移我们在首先定义一个F的dp数组外还要定义一个G我们定义F[x][i]代表x的子树还有i层没有完全被覆盖,G[x][i]代表x的子树全部覆盖完还能向上延伸i层于是我们就可以利用F和G之间的关系来转移 G[x][j]=min(G[x][j]+F[to[i]][j],F[x][j+1]+G[to[i]][j+1]);我们来看一下具体转移的式子一种是利用x向上延伸的距离来覆盖to[i],另外一种是用to[i...