线性dp
具有线性阶段划分的动态规划算法被统称为线性dp
经典例题有:
1.最长上升子序列(lis)
2.最长公共子序列(lcs)
3.数字三角形
这里给出最长上升序列的代码
for(int i=1;i<=n;i++){
f[i]=1;
for(int j=1;j<i;j++){
if(d[i]>d[j]&&f[i]<f[j]+1){
f[i]=f[j]+1;
pre[i]=j;
if(ans<f[i]){
ans=f[i];
te=i;
}
}
}
}