题目描述 Description
给一个数组a1, a2 … an,找到最长的上升降子序列ab1
(http://codevs.cn/problem/1576/)
#include <stdio.h>
#include <algorithm>
using namespace std;
const int Max_N(5000);
int T;
int num[Max_N];
int dp[Max_N + 1];
void solve(){
int ans(0);
for(int i = 0; i < T; ++i){
dp[i] = 1;
for(int j = 0; j < i; ++j){
if(num[i] > num[j])
dp[i] = max(dp[i], dp[j] + 1);
}
ans = max(dp[i], ans);
}
printf("%d\n", ans);
}
int main(){
scanf("%d", &T);
for(int i = 0; i < T; ++i){
scanf("%d", &num[i]);
}
solve();
return 0;
}