欢迎光临散文网 会员登陆 & 注册

最长非减字串2 (二分查找) 银牌

2022-10-19 22:16 作者:信奥赛USACO郑老师  | 我要投稿

//最长递增(非减少)子序列

//给定长度尾部最小值递推动态规划,O(nlogn)

#include<bits/stdc++.h>

using namespace std;


int main(){

    int n;

    cin>>n;

    vector<int> a;

    for(int i=0;i<n;i++){

        int x;

        cin>>x;

        auto ip=upper_bound(a.begin(),a.end(),x);

        if(ip==a.end()){//larger than anything ending

            a.push_back(x);

        }else{

            if(*ip>x){

            *ip=x;//replace larger minimal value

            }

        }

    }

    cout<<a.size()<<endl;

}


最长非减字串2 (二分查找) 银牌的评论 (共 条)

分享到微博请遵守国家法律