POJ 2533
1 #include<iostream> 2 #include<algorithm> 3 #define MAXN 1005 4 using namespace std; 5 6 int dp[MAXN]; 7 int date[MAXN]; 8 9 int main() 10 { 11 //freopen("acm.acm","r",stdin); 12 int num; 13 int i; 14 int max; 15 int j; 16 cin>>num; 17 for(i = 0; i < num; ++ i) 18 { 19 cin>>date[i]; 20 } 21 for(i = 0; i < num; ++ i) 22 { 23 dp[i] = 1; 24 } 25 for(i = num - 1; i >= 0; -- i) 26 { 27 max = 0; 28 for(j = i + 1; j < num; ++ j) 29 { 30 if(date[j] > date[i]) 31 { 32 if(dp[j] > max) 33 { 34 max = dp[j]; 35 } 36 } 37 } 38 dp[i] += max; 39 } 40 cout<<*max_element(dp,dp+num)<<endl; 41 }