L2 014 列車排程 25分

2021-10-04 03:22:22 字數 1108 閱讀 9111

只需要判斷每條軌道上末尾的列車裡,是否有比當前列車序號大的,若有,則找到序號差最小的,放進去;否則只能增加一條軌道。

關於演算法的實現,若是用陣列和for迴圈,則會超時。

可以用set集合實現

erase(iterator) ,刪除定位器iterator指向的值

erase(first,second),刪除定位器first和second之間的值

erase(key_value),刪除鍵值key_value的值

lower_bound( begin,end,num):從陣列的begin位置到end-1位置二分查詢第乙個大於或等於num的數字,找到返回該數字的位址,不存在則返回end。通過返回的位址減去起始位址begin,得到找到數字在陣列中的下標

找到兩篇文章,重要的是要記到腦子裡啊喂!!!

set用法詳解

lower_bound( )和upper_bound( )用法

原題如下:

火車站的列車排程鐵軌的結構如下圖所示。

兩端分別是一條入口(entrance)軌道和一條出口(exit)軌道,它們之間有n條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照的順序排隊等待進入。如果要求它們必須按序號遞減的順序從出口離開,則至少需要多少條平行鐵軌用於排程?

輸入格式:

輸入第一行給出乙個整數n (2 ≤ n ≤10

​5​​),下一行給出從1到n的整數序號的乙個重排列。數字間以空格分隔。

輸出格式:

在一行中輸出可以將輸入的列車按序號遞減的順序調離所需要的最少的鐵軌條數。

輸入樣例:

98 4 2 5 3 9 1 6 7

輸出樣例:

4

#include

using

namespace std;

intmain()

else s.

insert

(t);

} cout<

size()

;}

L2 014 列車排程 25 分

火車站的列車排程鐵軌的結構如下圖所示。兩端分別是一條入口 entrance 軌道和一條出口 exit 軌道,它們之間有n條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照的順序排隊等待進入。如果要求它們必須按序號遞減的順序從出口離開,則至少需要多少條...

L2 014 列車排程 25 分

火車站的列車排程鐵軌的結構如下圖所示。兩端分別是一條入口 entrance 軌道和一條出口 exit 軌道,它們之間有n條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照的順序排隊等待進入。如果要求它們必須按序號遞減的順序從出口離開,則至少需要多少條...

L2 014 列車排程 25分

沒想法.參考柳婼 必須要 號 的先出,的後出。所以列 排隊的每 隊必須是從 到 排列 從右往左 看 才能保證開出去的 也是從 到 的。對於每 個想要進 並列鐵軌的 如果 號 於每 隊的隊尾的 號,說明不能進 已經有的隊伍,必須進 新的鐵軌,否則,選擇 個最接近它 號的 尾部 號的隊伍進 其實 需儲存...