动态规划
定义状态: dp1[i]表示以第i个节点为根节点,但不包括i本身时,树上不相邻节点的最大和; dp2[i]表示以第i个节点为根节点,且包括i本身时,树上不相邻节点的最大和。
状态转移: dp1[i] = max(sum(dp2[child]) for child in i的儿子节点) dp2[i] = sum(max(dp1[child], dp2[child]) for child in i的儿子节点) + i的权值
代码实现如下:
上一篇:Win8硬盘分区 | 完美解析Win8分区方法
下一篇:不想让AlertDialog的EditText接受空值。