原题:http://noi.openjudge.cn/ch0206/1759/
这道题,基础动态规划,不多讲了,直接上代码。
#include<bits/stdc++.h>
using namespace std;
int n,a[1010],dp[1010],ans;
int main(){
cin >> n;
for(int i = 1; i <= n; i++){
cin >> a[i];
dp[i] = 1;
}
for(int i = 1; i <= n; i++){
for(int j = 1; j < i; j++){
if(a[i] > a[j])dp[i] = max(dp[i],dp[j] + 1);
}
}
for(int i = 1; i <= n; i++)ans = max(ans,dp[i]);
cout << ans;
return 0;
}