NOYJ-拦截导弹

来源:互联网 发布:盛科网络 营收 编辑:程序博客网 时间:2024/06/05 10:26

思路:

最长非递增序列:

太懒了,想用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;}


0 0