G的题解代码并未使用书上背包的优化 对于扫帚型的树,复杂度会来到n * k * k 应该在背包合并的使用动态更新sz数组实现 扫帚型的树: for(int i=1;i<n - k;i++){ g[i].push_back(i + 1); g[i + 1].push_back(i); } for (int i = n - k + 1; i <= n; i++){ int u = i, v = n - k; g[u].push_back(v); g[v].push_back(u); }