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 }

 

posted @ 2013-10-24 21:01  水门  阅读(145)  评论(0编辑  收藏  举报