树形DP

树形DP,顾名思义就是在树上DP

以这道题来解释树形DP的基本思路:

洛谷P1352 没有上司的舞会

定义状态:dp[i][0/1]:以i为根的子树,点i不去/去舞会的2最大价值。

答案:max(dp[1][0],dp[1][1])

状态转移方程:

对于点v是点u的子节点:

  • 对于u去舞会,那么v只能不去,dp[u][1]+=dp[v][0];
  • 对于u不去舞会,那么v可以去也可以不去,dp[u][0]+=max(dp[v][1],dp[v][0])

边界条件:dp[x][1]=a[x],dp[x][0]=0

posted @ 2024-08-17 20:35  KK_SpongeBob  阅读(20)  评论(0)    收藏  举报  来源