diff --git a/TangDou/Topic/HuanGenDp/CF1406C.cpp b/TangDou/Topic/HuanGenDp/CF1406C.cpp index cf62646..7088ddf 100644 --- a/TangDou/Topic/HuanGenDp/CF1406C.cpp +++ b/TangDou/Topic/HuanGenDp/CF1406C.cpp @@ -21,23 +21,15 @@ void dfs(int u, int fa) { for (int i = h[u]; ~i; i = ne[i]) { // 枚举u的每一条出边 int v = e[i]; if (v == fa) continue; - dfs(v, u); - sz[u] += sz[v]; + dfs(v, u); // 先把v为根的子树遍历完 + sz[u] += sz[v]; // 把 v中获取填充的sz[v]值,用于组装自己sz[u] son[u] = max(son[u], sz[v]); } son[u] = max(son[u], n - sz[u]); if ((son[u] << 1) <= n) r2 = r1, r1 = u; } -/* -1 2 -1 2 -1 3 -2 3 -*/ + signed main() { -#ifndef ONLINE_JUDGE - freopen("CF1406C.in", "r", stdin); -#endif int T; cin >> T; while (T--) {