有n項工作,每項工作分別在si開始,ti結束。對每項工作,你都可以選擇參加或不參加,但選擇了參加某項工作就必須至始至終參加全程參與,即參與工作的時間段不能有重疊(即使開始的時間和結束的時間重疊都不行)。目標:參與盡可能多的工作,那麼最多能參與多少項工作
限制條件:1<=n<=100000
1<=si<=ti,=10^9
5
//n項工作12
468//第i項工作的開始時間35
7910//第i項工作的結束時間
3
#include
#include
#include
#include
using namespace std;
const int max_n =
100000
;pair itv[max_n]
;int main()
for(int i =
0;i)sort
(itv,itv+n)
;//優先選取早結束的任務,將結束時間公升序排序然後遍歷
int ans =
0,t =0;
for(int i =
0;iprintf
("%d\n"
,ans)
;return0;
}
區間排程問題(貪心)
問題描述 有n項工作,每項工作分別在si開始,ti結束。對每項工作,你都可以選擇參加或不參加,但選擇了參加某項工作就必須至始至終參加全程參與,即參與工作的時間段不能有重疊 即使開始的時間和結束的時間重疊都不行 問最多可以完成多少項工作?限制條件 1 n 100000 1 si ti 10 9 第二行...
貪心法解決區間排程問題 快速排序
學校的小禮堂每天都會有許多活動,有時間這些活動的計畫時間會發生衝突,需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動,每個時間最多安排乙個活動。現在小劉有一些活動計畫的時間表,他想盡可能的安排更多的活動,請問他該如何安排。輸入 第一行是乙個整型數m m 100 表示共有m組測試資料。每...
區間排程問題 貪心演算法
問題 有 n 項工作,每項工作分別在 s i 時間開始,在 t i 時間結束 對於每項 工作,你都有可以選擇參與與否。如果選擇了參與,那麼自始自終都必須全程參與。此外,參與工作的時間段不能重疊 即使是開始的瞬間和結束的瞬間的重疊也 是不允許的 include include include usin...