zoukankan      html  css  js  c++  java
  • 列车调度

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

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

    输入格式:

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

    输出格式:

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

    输入样例:

    9
    8 4 2 5 3 9 1 6 7
    

    输出样例:

    4
    求需要最少的铁轨条数,其实就是求最长上升子序列的长度
    #include <iostream> 
    #include <set> 
    using namespace std;
    int main()
    {
        int n, t;
        cin >> n;
        set<int> s;  
        for(int i=0;i<n;i++)
        {
            cin >> t;
            if (s.upper_bound(t)!=s.end()) 
            {
                s.erase(s.upper_bound(t)); //upper_bound(t)函数用来求大于t的数 
            }
            s.insert(t);   
        }
        cout << s.size();
        return 0;
    }
  • 相关阅读:
    常见浏览器的兼容问题
    SCSS 的理解
    常见浏览器兼容性问题与解决方案(上)
    常见浏览器兼容性问题与解决方案(下)
    ie6定位absolute bug触发layout解决
    AngularJS 最常用的八种功能
    IE6的3像素bug
    CSS属性级Hack
    什么是SASS
    什么是less?
  • 原文地址:https://www.cnblogs.com/andrew3/p/10541356.html
Copyright © 2011-2022 走看看