• L2-014. 列车调度(set的使用,最长递增子序列)


    L2-014. 列车调度

    时间限制
    300 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    陈越

    火车站的列车调度铁轨的结构如下图所示。


    Figure

    两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?

    输入格式:

    输入第一行给出一个整数N (2 <= N <= 105),下一行给出从1到N的整数序号的一个重排列。数字间以空格分隔。

    输出格式:

    在一行中输出可以将输入的列车按序号递减的顺序调离所需要的最少的铁轨条数。

    输入样例:
    9
    8 4 2 5 3 9 1 6 7
    
    输出样例:
    4
    

    提交代码

    #include<map>    
    #include<set>    
    #include<ctime>    
    #include<cmath>    
    #include<queue>    
    #include<bitset>    
    #include<string>    
    #include<vector>    
    #include<cstdio>    
    #include<cstring>    
    #include<iostream>    
    #include<algorithm>    
    #include<functional>    
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        set<int>s;
        for(int i=1;i<=n;i++)
        {
            int x;
            cin>>x;
            if(s.size ()==0) 
            {
                s.insert (x);
            }
            else
            {
                if(s.lower_bound(x)!=s.end())
                {
                    s.erase(s.lower_bound(x));
                    s.insert(x);//找到一个比此数大的使其跟在后面的,就把前面那个数删除.
                }
                else
                s.insert(x);//否则就新开一个铁路.
            }
        }
        cout<<s.size ();
    }
  • 相关阅读:
    诸葛亮的后半生:狗笼子里挥舞丈八蛇矛
    一句话摘录
    【书摘】The Joshua tree epiphany
    玩具程序:bigInt
    旅行的力量
    记忆的力量
    快的力量
    Windbg学习笔记【4】
    戴尔笔记本win8全新安装
    悟透JavaScript
  • 原文地址:https://www.cnblogs.com/caiyishuai/p/13271080.html
Copyright © 2020-2023  润新知