区间dp是由若干个已知答案的小区间来推出大区间的dp
每次加法,都有
而因为有负数的存在,乘法的情况有多种,但是可以知道,最终答案一定会是从小区间的最大值或最小值相乘而得来
令dp[0][i][j]表示i~j最大值,dp[1][i][j]表示i~j最小值
则有:
同理,求最小值将max改为min即可
初始值:当x=y时,dp[0][x][y]=dp[1][x][y]=num[x]
通过每条边进入一个节点的子树,必须还要通过这条边走出这棵子树
要求总共有多少种情况,需要找到在要求的l~r中,颜色于l相同的边,那么这两个中间就有可能是l代表的节点的子树
每种成立的情况的答案是组成第一颗子树的情况数和后面所有节点的总情况数,故得: