poj 2533 Longest Ordered Subsequence
#include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> #include<algorithm> using namespace std; int a[5002]; int d[5002]; int n; int main() { while(scanf("%d",&n)!=EOF) { int i; for(i=0;i<n;i++) { scanf("%d",&a[i]); } int k=n; //a[0],a[1],,,,a[k-1] for(i=0;i<k;i++) { d[i]=1; } int MAX=d[0]; int j; for(i=1;i<k;i++) { for(j=0;j<i;j++) { if(a[i]>a[j]&&d[i]<d[j]+1) { d[i]=d[j]+1; } } MAX=MAX>d[i]?MAX:d[i]; } printf("%d\n",MAX); } return 0; }
把之前的代码改了几行就过了