poj 2533 Longest Ordered Subsequence(dp)
题目:http://poj.org/problem?id=2533
题意:最长上升子序列。。。。 以前做过,课本上的思想
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 7 int main() 8 { 9 int m,a[1100]; 10 int d[1100],i,j,n; 11 int nmax; 12 cin>>n; 13 for(i=1; i<=n; i++) 14 { 15 cin>>a[i]; 16 } 17 d[1]=1; 18 for(i=1; i<=n; i++) 19 { 20 m=0; 21 for(j=1; j<i; j++) 22 if((a[i]-a[j])>0) 23 if(m<d[j]) 24 m=d[j]; 25 d[j]=m+1; 26 } 27 nmax=-1; 28 for(i=1; i<=n; i++) 29 { 30 if(d[i]>nmax) 31 nmax=d[i]; 32 } 33 cout<<nmax<<endl; 34 return 0; 35 }