约 10 分钟
树形 DP 的转移是“从孩子汇总到父亲”。遍历 u 的每个孩子 v,把 dp[v] 并进 dp[u]。若父子相邻不能同选,选 u 时只能取孩子的“不选”态:dp[u][1]+=dp[v][0];不选 u 时取孩子两态较大者:dp[u][0]+=max(dp[v][0],dp[v][1])。
dp[v]
dp[u]
dp[u][1]+=dp[v][0]
dp[u][0]+=max(dp[v][0],dp[v][1])
选了 u,它的孩子 v 还能选吗(相邻不能同选时)?
登录 后可看答案