/*最长上升子序列*/ /* 输入: 5 4 2 3 1 5 输出: 3 */ #include<iostream> #define MAX_N 100 #define max(x, y) x>y?x:y using namespace std; int n; int a[MAX_N]; int dp[MAX_N]; void LIS() { int res = 1; for(int i = 0; i < n; i++) { dp[i] = 1; for(int j = 0; j < i; j++) if(a[j] < a[i]) { dp[i] = max(dp[i], dp[j] + 1); } res = max(dp[i], res); } cout<<res<<endl; } int main() { cin>>n; for(int i = 0; i < n; i++) cin>>a[i]; LIS(); system("PAUSE"); return 0; }