线性dp是叠状态
在xx情况下的某种最优状态的值就是一维dp
在xx情况的xx情况下的某种最优状态的值就是二维dp
状态套状态就多一维
状态越多维度越高
区间dp其实也可以表示成这个,比如区间左端点为i且区间右端点为j的情况下的状态
在计算时保留这些状态是为了在状态转移时候会用到这些值
那我下一个状态就是当前状态xx关联一些数进行运算之后得到新的状态
状态越多转移携带的信息越多越有利于计算转移之后的状态,但维度升高,时间和空间复杂度都增大
状态之间可能会有关联性
比如xx情况下pp情况下的状态,假设xx和pp有关,也就意味着知道xx状态时pp状态也随之确定
所以pp状态可以去掉
即在计算新状态时一个状态的值可以用另一个状态的值计算而来,所以在转移的时候一个状态可以不用保留。
所以总结就是
dp里面保留的状态是用来在转移时候携带信息
(维度里面的值或者dp本身的值都可以作为信息)
用这些信息关联一些变量来进行计算
计算包括
计算新的状态保留的状态参数
计算新的状态做出决策之后的更优的值即dp本身的值
得到新状态做出最优决策保留对结果最有利的dp值
使得下一次状态更新的时候所用的dp值都是最优的
即相应状态下做出的决策的结果都是最优的
步步最优导致全局最优,即在决策的时候就有剪枝的效果
舍去了不好的结果,保留了最优的结果