线性DP

//线性DP,本例还是以LIS为例,但用了不同思路
#include 
using namespace std;
const int maxn = 103,INF=0x7f7f7f7f;
int a[maxn],dp[maxn];//输入数组,DP数组
int n,ans=-INF;//数组长为N,答案初始化无穷小
int main(){
    scanf("%d",&n);         //N个数扫一次
    for(int i=1;i<=n;i++){  //遍历
        scanf("%d",&a[i]);  //输入
        dp[i]=1;             //dp[i]表示由1到i的最长上升序列长度初始化,注意一定是以第I位为末位,i是DP的下标
    }//因自身肯定可以形成一个长为1的LIS,如数列54321的DP始终不能更新,则DP就是初始的11111
    for(int i=1;i<=n;i++)   //枚举右界
        for(int j=1;j

你可能感兴趣的:(ACM笔记-1DP)