| Time Limit: 2000MS | Memory Limit: 65536K | |
| Total Submissions: 33943 | Accepted: 14871 |
Description
Input
Output
Sample Input
7 1 7 3 5 9 4 8
Sample Output
4
Source
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int a[12000] , dp[12000] ;
int main()
{
int i , j , n , max1 ;
while(scanf("%d", &n)!=EOF)
{
memset(dp,0,sizeof(dp));
a[0] = -1 ;
for(i = 1 ; i <= n ; i++)
scanf("%d", &a[i]);
for(i = 1 ; i <= n ; i++)
for(j = 0 ; j < i ; j++)
if( a[j] < a[i] && dp[j]+1 > dp[i] )
dp[i] = dp[j] + 1 ;
max1 = 0 ;
for(i = 1 ; i <= n ; i++)
max1 = max(max1,dp[i]);
printf("%d\n", max1);
}
return 0;
}
poj2533--Longest Ordered Subsequence(dp:最长上升子序列)
原文:http://blog.csdn.net/winddreams/article/details/40150829