L2-014. 列車調度

//看到這個程序後深感STL的神奇,也重新認識到STL在算法競賽中的重要性

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 <bits/stdc++.h>
using namespace std;
int main(){
    set<int>s;
    int n,x;  
    cin>>n;  
    for(int i=0;i<n;i++){  
        cin>>x;
		if(s.empty()) s.insert(x);
		else if(*(s.rbegin())>x){
			s.erase(*( s.upper_bound( x ) ));
		}  
        s.insert(x);
    }  
    cout<<s.size();   
	return 0;
}

發佈了82 篇原創文章 · 獲贊 79 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章