PTA L2-014 列车调度 (二分)

题面

在这里插入图片描述

题解

  1. 注意看清题中的输入输出顺序,开始是763519248 ,但是输入是倒着输入的,再看输出,是按递减的顺序出站的,所以要大的在前,小的在后

在这里插入图片描述
如图,如果放入的数小于当前对列的尾端,那么就可以放入,然后更新队列尾端即可,这里我们可以用set 实现队列的数量,然后二分查找合适的队列放入

代码

#include<cstdio>
#include<iostream>
#include<set>

using namespace std;

int main() {
    
    

    int n;
    cin>>n;
    set<int> st;
    for(int i=0;i<n;i++){
    
    
        int x;
        cin>>x;
        //如果能找到一个数大于x,那么就说明x可以放在这个数后
        if(st.upper_bound(x)!=st.end()){
    
    
            //更新这个数的末尾
            st.erase(st.upper_bound(x));
        }
        st.insert(x);
    }
    cout<<st.size()<<endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_44791484/article/details/115078171