题意:求最长递增子序列
AC代码:
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int dp[1010],a[1010]; int main() { int i,j,n; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) dp[i]=1; if(n==1) printf("1 "); else{ int maxx=1; for(i=1;i<n;i++) { for(j=0;j<i;j++) if(a[j]<a[i]){ dp[i]=max(dp[i],dp[j]+1); } maxx=max(dp[i],maxx); } printf("%d ",maxx); } return 0; }