动规方程f[i]=f[j]+1(1<=j<i, a[j]<a[i])
教训
最长上升子序列有一个特点,就是答案最小都是1,所以可以给f[i]赋值为1,还有一种处理方式是并不赋值为1,但是在输出答案的时候加1就好了(其实就是偏移量)。
给每个f[i]加1其实就意味着每个数都可能是最长上升子序列的第一个元素。
然后我犯了一个错误,只给f[1]赋值为1,其实在算法上就意味着默认最长上升子序列是从第一个数开始,呃,错的。然后自己给数据就往往给的是从第一开始的答案,总是wrong。
动规方程f[i]=f[j]+1(1<=j<i, a[j]<a[i])
教训
最长上升子序列有一个特点,就是答案最小都是1,所以可以给f[i]赋值为1,还有一种处理方式是并不赋值为1,但是在输出答案的时候加1就好了(其实就是偏移量)。
给每个f[i]加1其实就意味着每个数都可能是最长上升子序列的第一个元素。
然后我犯了一个错误,只给f[1]赋值为1,其实在算法上就意味着默认最长上升子序列是从第一个数开始,呃,错的。然后自己给数据就往往给的是从第一开始的答案,总是wrong。