906. 區間分組
給定n個閉區間[ai,bi],請你將這些區間分成若干組,使得每組內部的區間兩兩之間(包括端點)沒有交集,並使得組數盡可能小。
輸出最小組數。
輸入格式
第一行包含整數n,表示區間數。
接下來n行,每行包含兩個整數ai,bi,表示乙個區間的兩個端點。
輸出格式
輸出乙個整數,表示最小組數。
資料範圍
1≤n≤105,
−109≤ai≤bi≤109
輸入樣例:
3-1
1243
5
輸出樣例:
2
這道題挺有難度的,先對左邊界進行乙個排序,然後建立乙個小根堆,然後放進去有邊界,每次列舉最小邊界,如果最小邊界不能滿足小於下乙個列舉的左邊界座標,那麼就把這個點的右邊界放進去,然後如果滿足,就更新這個區間的有邊界,然後逐步列舉。
#include
#include
#include
using
namespace std;
const
int n=
1e5+10;
struct range
} range[n]
;int
main
(void
)else
} cout
;}
AcWing 906 區間分組
這個區間貪心問題,是要按照區間左端點排序。和之前區間問題一樣,我們需要分情況討論貪心決策 1.如果乙個區間的左端點比當前每乙個組的最右端點都要小,那麼意味著要開乙個新區間了,這個條件還可以優化成,乙個區間左端點比最小組的右端點都要小就開乙個新組。2.如果乙個區間的左端點比最小組的右端點大,那麼就放在...
AcWing 906 區間分組
目錄貪心演算法求解 新的思路 參考文章 給定 n 個閉區間 ai,bi 請你將這些區間分成若干組,使得每組內部的區間兩兩之間 包括端點 沒有交集,並使得組數盡可能小。輸出最小組數。輸入格式 第一行包含整數 n,表示區間數。接下來 n 行,每行包含兩個整數 ai,bi,表示乙個區間的兩個端點。輸出格式...
Acwing 905 區間選點
給定n個閉區間 ai,bi 請你在數軸上選擇盡量少的點,使得每個區間內至少包含乙個選出的點。輸出選擇的點的最小數量。位於區間端點上的點也算作區間內。輸入格式 第一行包含整數n,表示區間數。接下來n行,每行包含兩個整數ai,bi 表示乙個區間的兩個端點。輸出格式 輸出乙個整數,表示所需的點的最小數量。...