貪心解決區間排程問題

2021-10-09 17:40:39 字數 775 閱讀 4575

有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...