标签:clu can inpu pac lan for let ogr out
A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence ( a1, a2, ..., aN) be any sequence ( ai1, ai2, ..., aiK), where 1 <= i1 < i2 < ... < iK <= N. For example, sequence (1, 7, 3, 5, 9, 4, 8) has ordered subsequences, e. g., (1, 7), (3, 4, 8) and many others. All longest ordered subsequences are of length 4, e. g., (1, 3, 5, 8).
Your program, when given the numeric sequence, must find the length of its longest ordered subsequence.Input
Output
Sample Input
7 1 7 3 5 9 4 8
Sample Output
4
f[i]=max{f[j]}+1 (j<i 且a[j]<a[i])
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 5 using namespace std; 6 7 int a[1005],f[1005]; 8 9 int main() 10 { 11 int n,maxx=0; 12 scanf("%d",&n); 13 for(int i=1;i<=n;i++) 14 scanf("%d",&a[i]); 15 //memset(f,1,sizeof(int)); 16 for(int i=1;i<=n;i++) 17 f[i]=1; 18 for(int i=2;i<=n;i++) 19 { 20 for(int j=1;j<i;j++) 21 { 22 if(a[i]>a[j]&&f[i]<f[j]+1) 23 f[i]=f[j]+1; 24 } 25 // cout<<i<<" "<<f[i]<<endl; 26 } 27 for(int i=1;i<=n;i++) 28 if(f[i]>maxx) 29 maxx=f[i]; 30 printf("%d\n",maxx); 31 32 return 0; 33 }
POJ - 2533 Longest Ordered Subsequence
标签:clu can inpu pac lan for let ogr out
原文地址:http://www.cnblogs.com/xibeiw/p/7280250.html