L2 014 列車排程 (Dilworth定理)

2021-08-15 05:55:05 字數 1155 閱讀 1980

時間限制

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
// 題目的意思就是:尋找到最少的下降序列個數

// 可以運用dilworth定理:最少的下降序列個數就等於整個序列最長上公升子串行的長度;這樣題目就轉化為求最長的上公升子串行長度。

// 求最長上公升子串行長度有2種時間複雜度:1.o(n^2) 2.o(nlogn) 這題時間要求有點高,所以用nlogn.

#include using namespace std;

int binary_search(int key, int a, int left, int right)

return left;

}int main()

; int d[100001] = ;

cin >> n;

for (int i = 0; i < n; i++)

cin >> train[i];

d[len] = train[0];

for (int i = 1; i < n; i++) }

cout << len;

return 0;

}

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 軌道...