#include<stdio.h> #include<string.h> #include<algorithm> #include<math.h> #include<stack> #include<queue> using namespace std; int a[25],dp[30]; int main() { int n,m,i,j; scanf("%d",&n); while(n--) { scanf("%d",&m); scanf("%d",&a[0]); dp[0]=1; int max=dp[0]; for(i=1;i<m;i++) { scanf("%d",&a[i]); int t=0; for(j=0;j<i;j++) { if(dp[j]>t&&a[j]>a[i]) t=dp[j]; } dp[i]=t+1; if(dp[i]>max) max=dp[i]; } printf("%d ",max); } return 0; }
动态规划