POJ-2533.Longest Ordered Subsequence (LIS模版题)

时间:2023-03-09 18:00:20
POJ-2533.Longest Ordered Subsequence (LIS模版题)

  本题大意:和LIS一样

  本题思路:用dp[ i ]保存前 i 个数中的最长递增序列的长度,则可以得出状态转移方程dp[ i ] = max(dp[ j ] + 1)(j < i)

  参考代码:

 #include <iostream>
#include <cstring>
#include <algorithm>
using namespace std; const int maxn = 1e3 + ;
int a[maxn], dp[maxn]; int main () {
int n, ans = ;
cin >> n;
for(int i = ; i <= n; i ++)
cin >> a[i];
for(int i = ; i <= n; i ++) {
dp[i] = ;
for(int j = ; j < i; j ++) {
if(a[i] > a[j]) dp[i] = max(dp[i], dp[j] + );
}
ans = dp[i] > ans ? dp[i] : ans;
}
cout << ans << endl;
return ;
}