dp[i][j]存以第i个结点为根(相当于没有父亲的),得到一个结点为j的子树所要去掉的边数
从下到上搜索,
考虑一个节点时,有两种选择,
要么剪掉跟子节点相连的边,则dp[i][j] = dp[i][j]+1;
要么不剪掉,则d[i][j] = max(dp[i][j], dp[i][k]+dp[son][j-k]);
#include#include #include #include #include #include #include #include #include