动态规划
定义状态: 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的权值
代码实现如下:
上一篇:不向客户提供公共证书可能吗?
下一篇:不想让AlertDialog的EditText接受空值。