1286:怪盗基德的滑翔翼
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 const int N=105; 5 6 int a[N],b[N],c[N]; 7 int main(){ 8 int t,n,maxx; 9 cin>>t; 10 while(t--){ 11 cin>>n; 12 maxx=0; 13 for(int i=1;i<=n;i++)scanf("%d",&a[i]); 14 //上升子序列 15 for(int i=1;i<=n;i++){ 16 b[i]=1; 17 for(int j=1;j<i;j++) 18 if(a[i]<a[j])b[i]=max(b[i],b[j]+1); 19 maxx=max(maxx,b[i]); 20 } 21 //上升子序列 22 for(int i=n;i>0;i--){ 23 c[i]=1; 24 for(int j=i+1;j<=n;j++) 25 if(a[i]<a[j])c[i]=max(c[i],c[j]+1); 26 maxx=max(maxx,c[i]); 27 } 28 cout<<maxx<<endl; 29 } 30 return 0; 31 }