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每組資料輸出至少需要安排多少個站台
131 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 6using
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的順序從東方左轉進站,這個車站是南北方向的,它雖然無限長,只可惜是乙個死胡同,而且站台只有一條股道,火車只能倒著從西方出去,而且每列火車必須進站,先進後出。某生 不就是個棧嗎?每次可以讓右側頭火車進棧,...