AcWing 1017. 怪盗基德的滑翔翼
原题链接
简单
作者:
minux
,
2020-04-15 19:05:21
,
所有人可见
,
阅读 507
#include <bits/stdc++.h>
using namespace std;
int jumpBuildings(int *A, int N){
int maxB=1;
int f[N];
for(int i=0; i<N; ++i) f[i]=1;
// right
for(int i=1; i<N; ++i){
for(int j=0; j<i; ++j){
if(A[j]<A[i])
f[i]=max(f[i], f[j]+1);
}
maxB = max(maxB, f[i]);
}
// left
for(int i=0; i<N; ++i) f[i]=1;
for(int i=N-2; i>=0; --i){
for(int j=N-1; j>i; --j){
if(A[j]<A[i])
f[i]=max(f[i], f[j]+1);
}
maxB = max(maxB, f[i]);
}
return maxB;
}
int main(){
int K;
cin>>K;
while(K--){
int N;
cin>>N;
int A[N];
for(int i=0; i<N;++i) cin>>A[i];
cout<<jumpBuildings(A, N)<<endl;
}
return 0;
}