undefined

树形DP套路:

树形DP套路使用前提:如果题目求解目标是死规则,则求解流程可以定成以每一个节点为头节点的子树在死规则下的每一个答案,并且最终答案一定在其中

1
2
3
4
// 常见的分类标准,可能性分类
// 分两种情况,头节点参与 和 头节点不参与
// 1. 头节点不参与,那就是左树上的最大距离 或者 有树上的最大距离
// 2. 头节点参与,这种情况就是 左树的高度 + 1 + 右树上的高度

树形dp套路第一步: 以某个节点X为头节点的子树中,分析答案有哪些可能性,并且这种分析是以X的左子 树、X的右子树和X整棵树的角度来考虑可能性的

树形dp套路第二步: 根据第一步的可能性分析,列出所有需要的信息

树形dp套路第三步: 合并第二步的信息,对左树和右树提出同样的要求,并写出信息结构

树形dp套路第四步:
设计递归函数,递归函数是处理以X为头节点的情况下的答案。 包括设计递归的basecase,默认直接得到左树和右树的所有信息,以及把可能性做整 合,并且要返回第三步的信息结构这四个小步骤