我的理解是一个从上往下砍树的过程。d -= dfs(x) 相当于砍掉了一棵子树。后面就是判断当前树要不要被砍掉。 emmm我也不是很确这样理解对不对,毕竟我也写不出来orz ```CC int dfs (int u) { int len = v[u].size(); //初始度数 for (auto i : v[u]) { //遍历所连边 if (vis[i]) continue; vis[i] = true; len -= dfs (i); //需要剪枝就-1,没被剪过就咔嚓剪掉 } if (len <= k) return 0; //不需要操作 ans += len - k; //多出来了多少边 return 1; } ```
点赞

相关推荐

点赞 评论 收藏
分享
12-07 10:09
复旦大学 Java
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务