#include <bits/stdc++.h> using namespace std; int dp[200002][2]; // dp[n][0]表示第n个人没来的时候的值,1为来了的时候的值 int n; vector<int> a(200002); vector<int> e[200002]; // 存储所有与n相连的点 void dfs(int u, int fa) { dp[u][0] = 0, dp[u][1] = a[u]; for (int v : e[u]) { if (v != fa) // 因为e[u]也包含着他的上司,避免dfs死...