Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void ReRoot (int v, int p) {
- res[v] = dp[v];
- for (auto u: adj[v]) {
- if (u == p) continue;
- dp[v] -= max(dp[u], 0);
- dp[u] += max(dp[v], 0);
- ReRoot (u, v);
- dp[u] -= max(dp[v], 0);
- dp[v] += max(dp[u], 0);
- }
- return;
- }
Add Comment
Please, Sign In to add comment