POJ 2533 Longest Ordered Subsequence
最长上升子序列,最最经典点的DP题。
注意在这个题中要求是严格上升!!!
下面是代码:
#include<stdio.h> int main() { int n,a[1005],dp[1005]; scanf("%d",&n); int i,m,j,max1=1; for(i=0; i<n; i++) { scanf("%d",&a[i]); } dp[0]=1; for(i=1; i<n; i++) { m=0; for(j=i-1; j>=0; j--) { if(a[i]>a[j]&&m<dp[j]) { m=dp[j]; } } dp[i]=m+1; if(max1<dp[i]) { max1=dp[i]; } } printf("%d\n",max1); return 0; }