思路:
最长非递增序列:
太懒了,想用lower_bound 就把数组反过来存了,变成了最长非递减子序列
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cstring>
using namespace std;
int a[100];
int b[100];
void solve(int n)
{
int cot=1;
b[1]=a[n];
for(int i=n-1;i>=1;i--)
{
if(a[i]>=b[cot])
{
b[++cot]=a[i];
}
else
{
b[lower_bound(b+1,b+1+cot,a[i])-b]=a[i];
}
}
cout<<cot<<endl;
}
int main()
{
int T;
cin>>T;
while(T--)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
solve(n);
}
return 0;
}