标签:
题目链接: http://poj.org/problem?id=2533
Description
Input
Output
Sample Input
7 1 7 3 5 9 4 8
Sample Output
4
基础DP 找最长升串,水过
1 #include<iostream> 2 #include<cstring> 3 #include<cmath> 4 #include<algorithm> 5 using namespace std; 6 7 int num[1005]; 8 class node{ 9 public: 10 int now, sum; 11 }dp[1005]; 12 13 int main(){ 14 ios::sync_with_stdio( false ); 15 16 int n; 17 while( cin >> n ){ 18 for( int i = 0; i < n; i++ ) 19 cin >> num[i]; 20 memset( dp, 0, sizeof( dp ) ); 21 22 for( int i = 0; i < n; i++ ){ 23 for( int j = 0; j <= i; j++ ){ 24 if( num[i] > dp[j].now && dp[i + 1].sum < dp[j].sum ){ 25 dp[i + 1].sum = dp[j].sum; 26 } 27 } 28 dp[i + 1].sum++; 29 dp[i + 1].now = num[i]; 30 } 31 32 int ans = 0; 33 for( int i = 1; i <= n; i++ ) 34 ans = max( ans, dp[i].sum ); 35 36 cout << ans << endl; 37 } 38 39 return 0; 40 }
POJ-2533 Longest Ordered Subsequence ( DP )
标签:
原文地址:http://www.cnblogs.com/hollowstory/p/5447881.html