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朴素做法)的主要内容,如果未能解决你的问题,请参考以下文章
AcWing 896. 最长上升子序列 II(二分优化LIS)
[Mdp] lc1035. 不相交的线(LCS+LIS+重点知识理解)