CSU 1757 火車進站 1757

2022-01-19 22:30:56 字數 1279 閱讀 7056

time limit: 1 sec     memory limit: 128 mb     submitted: 463     solved: 117    

火車站人們總是在站台等待列車進站,乙個站台有火車停留的時候就不能有其他火車進入,今天有n輛火車經過,已知它們進站時間si以及出站時間ti,進站時間到出站時間之間火車必須有乙個站台給它停靠,問讓所有火車都能按時停靠,至少要安排多少個站台給這些火車

第一行輸入乙個正整數t,表示資料組數

每組資料第一行輸入乙個正整數n,表示火車數量(n<=10000)

接下來n行,每行輸入2個正整數si,ti,表示第i輛火車的進站時間和出站時間(si每組資料輸出至少需要安排多少個站台

1

31 3

3 44 6

2

區間覆蓋問題。

用結構體存下時間和狀態(進還是出),比如 1 3,4 5.排完序後就是 1l 3r 4l 5r ,遇l則表示進入乙個區間,遇r則退出這個區間,記錄最大的區間數即可。

當資料 1 3,2 4時,排完序1l,2l,3r,4r。2l是在3r出之間就必須再加乙個區間,其實就是乙個數軸上,獨立的乙個區間,再來乙個區間後,檢查新區間的左端點是否在老區間裡面,自然是和

老區間的右端點比較,這道題就是多個區間,獨立沒有相交的區間忽略(火車可以直接開進來),求相交的區間個數。全部合成一張表,排序後掃瞄記錄最大值即可。

注意剛開始max直接在sum++**賦值,是不對的。因為可能--了很多次才++就不對了。

1 #include 2 #include 3 #include 4 #include 5 #include 6

using

namespace

std;

7const

int maxn = 10005*2;8

9struct

node node[maxn];

1314

intcmp(node a,node b)

2021

intmain()

2236

}37 sort(node,node+n*2

,cmp);

38int sum = 0;39

int max = -1;40

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

45else

46 sum--;47}

48 cout5051

return0;

52 }

CSU1757 火車入站 模擬

火車站人們總是在站台等待列車進站,乙個站台有火車停留的時候就不能有其他火車進入,今天有n輛火車經過,已知它們進站時間si以及出站時間ti,進站時間到出站時間之間火車必須有乙個站台給它停靠,問讓所有火車都能按時停靠,至少要安排多少個站台給這些火車 第一行輸入乙個正整數t,表示資料組數 每組資料第一行輸...

csu 1757 貪心或者樹狀陣列

time limit 1 sec memory limit 128 mb submit 209 solved 51 submit status web board 火車站人們總是在站台等待列車進站,乙個站台有火車停留的時候就不能有其他火車進入,今天有n輛火車經過,已知它們進站時間si以及出站時間ti...

火車進棧 dfs

題目描述 這裡有n列火車將要進站再出站 但是,每列火車只有1節 那就是車頭 描述有n列火車按1到n的順序從東方左轉進站,這個車站是南北方向的,它雖然無限長,只可惜是乙個死胡同,而且站台只有一條股道,火車只能倒著從西方出去,而且每列火車必須進站,先進後出。某生 不就是個棧嗎?每次可以讓右側頭火車進棧,...