AcWing 895. 最长上升子序列(LIS朴素做法)

Posted MangataTS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AcWing 895. 最长上升子序列(LIS朴素做法)相关的知识,希望对你有一定的参考价值。

题目连接

https://www.acwing.com/problem/content/897/

思路

因为数据范围很小,所以我们定义 f [ i ] f[i] f[i]表示的是以第i个元素结尾的最长上升子序列的长度,那么我们每次从[0,i]扫一遍然后去一个max就好啦

代码

#include<bits/stdc++.h>
using namespace std;

const int N = 5e2+10;

int a[N][N],f[N][N];
int n;
int main()

    cin>>n;
    memset(f,-0x3f3f3f3f,sizeof f);
    f[0][0] = 0;
    for(int i = 1;i <= n; ++i) 
        for(int j = 1;j <= i; ++j)
            cin>>f[i][j],f[i][j] += max(f[i-1][j-1],f[i-1][j]);

    int ans = -0x3f3f3f3f;
    for(int i = 1;i <= n; ++i) ans = max(f[n][i],ans);
    cout<<ans<<endl;
    
    
    return 0;

以上是关于AcWing 895. 最长上升子序列(LIS朴素做法)的主要内容,如果未能解决你的问题,请参考以下文章

895. 最长上升子序列

AcWing 896. 最长上升子序列 II(二分优化LIS)

最长上升子序列模型

[Mdp] lc1035. 不相交的线(LCS+LIS+重点知识理解)

[Mdp] lc1035. 不相交的线(LCS+LIS+重点知识理解)

acwing 272. 最长公共上升子序列