L2-014 列車調度 (25 分)
火車站的列車調度鐵軌的結構以下圖所示。ios
兩端分別是一條入口(Entrance)軌道和一條出口(Exit)軌道,它們之間有N
條平行的軌道。每趟列車從入口能夠選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照{8,4,2,5,3,9,1,6,7}的順序排隊等待進入。若是要求它們必須按序號遞減的順序從出口離開,則至少須要多少條平行鐵軌用於調度?算法
輸入第一行給出一個整數N
(2 ≤ N
≤),下一行給出從1到N
的整數序號的一個重排列。數字間以空格分隔。flex
在一行中輸出能夠將輸入的列車按序號遞減的順序調離所須要的最少的鐵軌條數。spa
9 8 4 2 5 3 9 1 6 7
PTA特點模擬題 要用stl的set的lowerbound 否則會超時 考察了STL的用法(=_=)4
算是貪心算法? 雖然不懂原理是什麼 可是能寫出來 要用二分查找
using namespace std; #include <stdio.h> #include <iostream> #include <cstring> #include <vector> #include <queue> //#include <map> #include <set> int N, M, x; set<int> st; int main() { cin >> N; for (int i = 0; i < N; i++) { cin >> x; set<int>::iterator it = st.lower_bound(x); if (it == st.end()) { st.insert(x); } else { st.erase(*it); st.insert(x); } } cout << st.size() <<endl; return 0; }