AcWing 1017. 怪盗基德的滑翔翼
#include<iostream> using namespace std ; const int N=110; int f[N],g[N]; int w[N]; int main() { int t; cin>>t; while(t--) { int n; cin>>n; int res=0; for(int i=1; i<=n; i++) cin>>w[i]; for(int i=1; i<=n; i++) { f[i]=1; for(int j=1; j<i; j++) { if(w[i]>w[j]) f[i]=max(f[i],f[j]+1); } res=max(res,f[i]); } for(int i=n; i>=1; i--) { g[i]=1; for(int j=n; j>i; j--) { if(w[i]>w[j]) g[i]=max(g[i],g[j]+1); } res=max(res,g[i]); } cout<<res<<endl; } return 0; }