猴腮雷
猴腮雷 (树型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_{son\in i} max(dp[son][0],dp[son][1])\)。
- $dp[i][1]=\sum_{son\in i} dp[i][0] $ 。
Code
hzoi