题目链接: http://noi.openjudge.cn/ch0206/4977/
最长上升子序列的模型
往左边跳,就是最长上升子序列; 往右边跳是最长下降子序列,只要reverse一下,就可以转换成最长上升子序列了。
#include<bits/stdc++.h> using namespace std; const int N=110; int n; int f[N],a[N]; int solve(int res) { for(int i=1;i<=n;i++) { f[i]=1; for(int j=1;j<i;j++) if(a[i]>a[j]) f[i]=max(f[i],f[j]+1); res=max(res,f[i]); } return res; } int main() { int T; cin>>T; while(T--) { cin>>n; int res=0; for(int i=1;i<=n;i++) cin>>a[i]; res=max(res,solve(res)); reverse(a+1,a+n+1); res=max(res,solve(res)); cout<<res<<endl; } return 0; }
标签:int,max,滑翔翼,怪盗,solve,res,序列,基德,最长 From: https://www.cnblogs.com/tolter/p/16741297.html