正着求一遍最长上升子序列问题,再反着求一遍最长上升子序列问题
#include<bits/stdc++.h> using namespace std; const int N=210; int n; int a[N]; int f[N]; int main() { int T; cin>>T; while(T--) { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; int res=0; for(int i=1;i<=n;i++) { f[i]=1; for(int j=i-1;j;j--) if(a[i]>a[j]) f[i]=max(f[i],f[j]+1); res=max(f[i],res); } for(int i=n;i;i--) { f[i]=1; for(int j=i+1;j<=n;j++) if(a[i]>a[j]) f[i]=max(f[i],f[j]+1); res=max(f[i],res); } printf("%d\n",res); } return 0; }
标签:int,max,滑翔翼,怪盗,res,基德 From: https://www.cnblogs.com/tolter/p/17108935.html