猴腮雷

猴腮雷 (树型dp (circ))

  • 新年就要来临啦,小猴腮雷一家 (N) 人将作为嘉宾被邀请到了春晚上。然而小猴腮雷的一家都曾经是大名鼎鼎的熊孩子,无论在什么时候都会,也只会和自己的直系亲属,也就是父母吵架,当然,即便是在春晚这个舞台上也是这样。
  • 为了到时候不会引起战争,组委会据此思考到底要邀请哪些人?更让组委会头疼是,每个猴腮雷拥有一个活泼值(A_i),组委会既想要他们不会发生矛盾,也想尽量让来参加的猴腮雷活泼值的和最大.

Input

  • 第一行一个整数(N)
  • 接下来 (N) 行,第 (i+1) 行表示 (i)号猴腮雷的活泼值 (A_i)
  • 接下来 (N-1) 行,每行输入一对整数 (L,K)。表示 (K)(L) 是直接亲属关系。
  • 最后一行输入 (0,0)

Output

  • 一行整数表示最大的活泼值的和。

Sample Input

7 
1 
1 
1 
1 
1 
1 
1 
1 3 
2 3 
6 4 
7 4 
4 5 
3 5 
0 0

Sample Output

5

Hint

  • 对于 (70\%) 的数据 (1=<N<=1000)
  • 对于 (100\%) 的数据 $ 1<=N<=6000, -128<=A_i<=127$ 。

分析

  • 就是一个裸裸的树型 (dp),基本就是《没有上司的舞会》。
  • 定义 (dp[i][0/1]) :表示以 (i) 为根的子树,不选/选 (i) 的最大活跃度。
    • (dp[i][0]=sum_{sonin i} max(dp[son][0],dp[son][1]))
    • $dp[i][1]=sum_{sonin i} dp[i][0] $ 。

Code


原文地址:https://www.cnblogs.com/hbhszxyb/p/13223746.html