Acwing 906 區間分組

2021-10-19 21:17:09 字數 820 閱讀 3956

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 表示乙個區間的兩個端點。輸出格式 輸出乙個整數,表示所需的點的最小數量。...