这个题可以用动态规划或者记忆化搜索来做。因为如果要求加分最大的话,必须要求它的儿子结点加分最大,所以就有了最优子阶段。我们可以枚举根来更新最大值。中序遍历有个特点,在中序遍历这个序列上,某个点左边的序列一定是这个点的左子树,右边的序列,一定在这个点的右子树。
rootrootroot [ iii , jjj ]表示[ iii , jjj ]这段序列的根,递归输出先序遍历。注意初始化, fff [ iii ][ iii ] =v=v=v [ iii ],当序列只有 III 一个元素时, fff [ iii ][ iii ]等于这个点本身的权值,当 l==r−1l==r-1l==r−1 时,此时是空树设为 111 。
动态规划 区间 dpdpdp