時間限制
300 ms
記憶體限制
65536 kb
**長度限制
8000 b
判題程式
standard
作者陳越
火車站的列車排程鐵軌的結構如下圖所示。
figure
兩端分別是一條入口(entrance)軌道和一條出口(exit)軌道,它們之間有n條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照的順序排隊等待進入。如果要求它們必須按序號遞減的順序從出口離開,則至少需要多少條平行鐵軌用於排程?
輸入格式:
輸入第一行給出乙個整數n (2 <= n <= 105),下一行給出從1到n的整數序號的乙個重排列。數字間以空格分隔。
輸出格式:
在一行中輸出可以將輸入的列車按序號遞減的順序調離所需要的最少的鐵軌條數。
輸入樣例:
9輸出樣例:8 4 2 5 3 9 1 6 7
4分析:用乙個陣列模擬軌道,陣列長度表示當前軌道數,陣列元素表示當前軌道的最後乙個元素,所以用反證法可以證明一下陣列最後乙個元素就是當前所有軌道中的最大元素。
然後用二分去找陣列中大於當前要進入軌道的元素的最小值
1 #include2using
namespace
std;
3const
int maxn=1e5+5;4
inta[maxn];56
//這裡有個一定性:就是在陣列len-1之前的元素一定都比 a[len-1]小;反證法一下,如果不比a[len-1]小,那a[len-1]大可放到前面去。7//
所以a[len-1]一定是當前陣列中最小的元素,然後插入k 的時候,直接和len-1比較一下就可以,滿足插入條件的話就二分check一下找最接近k8//
的並且大於k的位置插入
9int
main()else
25 a[l]=k;26}
27}28 cout
29 return0;
30 }
L2 014 列車排程
時間限制 300 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 火車站的列車排程鐵軌的結構如下圖所示。figure 兩端分別是一條入口 entrance 軌道和一條出口 exit 軌道,它們之間有n條平行的軌道。每趟列車從入口可以選擇任意一條軌道...
L2 014 列車排程
火車站的列車排程鐵軌的結構如下圖所示。兩端分別是一條入口 entrance 軌道和一條出口 exit 軌道,它們之間有n條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照的順序排隊等待進入。如果要求它們必須按序號遞減的順序從出口離開,則至少需要多少條...
L2 014 列車排程
think 剛剛開始感覺做法和 動態規劃的 最少攔截系統 相似,後來發現 max n 10 5 數值較大,感覺會tle的樣子,所以就用stl的set來處理。最後只要返回set的size即為所求 火車站的列車排程鐵軌的結構如下圖所示。兩端分別是一條入口 entrance 軌道和一條出口 exit 軌道...