此模型属于线性dp的分类:
基础知识
1.最长上升子序列
首先思考暴力的解决题目的方式:可以通过dfs指数型枚举,枚举出所有的序列,然后判断是否合理,然后找到最长的上升子序列的长度。
然后我们想如何优化:1000的问题范围,又是求最值或者方案数的的题目,凭借我们的那点微弱的知识库,很容易想到动态规划:
我们尝试用集合角度看看能不能分析出动态规划模型:
这个f[i - 1]:是说的当前i的上一个元素,这个上一个元素可能是从第1个开始到i - 1的每一个
其中集合的含义是参考的暴力
另外有一点小错误,要么是f[i] = f[上一个] + 1,要么f【i】 = 1;而不是等于f【上一个】
实际应用