讲课人:

老师对dp的理解是类似于分治思想,由小状态推出大状态。不同的是分治算法没有重叠子问题。
dp把子问题越划越小,从而推出了基础状态。然后是dp方程,要满足简洁性,并且充分描述能够影响最后结果的条件。
转移?zhx:从小问题推到大问题就是转移。


思路:先把挂钩数量排个序

这个题和导弹拦截差不多,你对l进行从大到小排序,那么文题就变成了求最长不上升子序列的个数,也就是最长上升子序列的长度。




n^2做法。
先想n^4做法,然后一步一步优化。





来道水题。

上午完结。
下午:
序列dp,区间dp





对于某个括号序列,把左右括号看成一组,对每个序列内部的括号进行消去操作,最后总能得到这样的东西:
,于是我们可以吧这个题转化为另外一个题:

对于这个题,我们要为了不让血量低于0,按打怪物减少血量升序排列。

回到这个题:




这类问题:卡特兰数:


安利经典题:

代码如下:

区间dp:







转移方程:dp[i][j]=min(dp[i][k]+dp[k][j]+gcd(a[i],a[j]));很ez。
完结。zhx很强大