今天讲了一天的dp,总的来说收获还是有,但dp仍然是弱项,很多时候看不出是dp,还是要多练,多思考状态以及状态转移方程。
对今天做的题目做一个小结
1.数字三角形3
这道题算比较简单的一题,要从题目以及图像结合来看出一些信息,对于特殊情况进行合理的分步,以及特判便可。
2. 最长公共上升子序列
这道题目还是有蛮多值得借鉴的地方,一开始可能想出来的方法不是最优,但可以通过观察程序,观察状态等,慢慢优化。合适的时候要学会借鉴其他学过的内容(eg:滚动数组),一道比较好的dp题。
3.最优配对问题
这道状压dp,说实话自己想应该是想不到的,蒟蒻只想得到剪枝搜索,状压dp还是不是很会,在位运算方面仍然薄弱,要善于从状态中找出可以压缩的点。
4.数字组合
一道简单的背包题,要善于转化。
5.加分二叉树
这道题还是比较明显的区间dp题,确定好状态,从区间中枚举点,这道题还顺带考了中序遍历和先序遍历。
总的来说,dp还是有蛮多类型的题没有熟悉,(eg:树形dp)还是要抓紧时间多练,才能写出状态转移方程,另外对于边界条件的考虑还是比较弱,有时不知为什么就这样了,还是要多看。