1 //怪盗基德的滑翔翼 2 #include<iostream> 3 #include<cstdio> 4 #include<cstdlib> 5 #include<cstring> 6 using namespace std; 7 const int maxx=102; 8 int a[maxx],b[maxx],c[maxx]; 9 int main() 10 { 11 int n,t; 12 scanf("%d",&t); 13 while(t--) 14 { 15 memset(b,0,sizeof(b)); 16 memset(c,0,sizeof(c)); 17 scanf("%d",&n); 18 for(int i=1;i<=n;i++) 19 scanf("%d",&a[i]); 20 for(int i=1;i<=n;i++) 21 { 22 b[i]=1; 23 for(int j=1;j<=i-1;j++) 24 { 25 if(a[j]<a[i]&&b[i]<b[j]+1) 26 b[i]=b[j]+1; 27 } 28 } 29 for(int i=n;i>=1;i--) 30 { 31 c[i]=1; 32 for(int j=i+1;j<=n;j++) 33 { 34 if(a[j]<a[i]&&c[i]<c[j]+1) 35 c[i]=c[j]+1; 36 } 37 } 38 int maxl=0; 39 for(int i=1;i<=n;i++) 40 { 41 if(b[i]>maxl)maxl=b[i]; 42 if(c[i]>maxl)maxl=c[i]; 43 } 44 printf("%d\n",maxl); 45 } 46 return 0; 47 }
时间: 2024-12-18 07:35:07